Java语法基础

Java语法基础

环境准备与命令

jdk = jre + 开发工具包
jre = Java runtime environment + JVM
Jvm: 1.加载class文件;2.管理并分配内存;3.执行垃圾回收机制。

环境变量准备

在环境变量中配置path
JAVA_HOME=jdk安装路径bin的上层目录
path=%JAVA_HOME%\bin

相关命令

java分为两部分:编译、运行
javac:将.java文件编译成.class文件。
词法分析 --> 语法分析 --> 语义分析和中间代码生成 --> 优化 --> 目标代码生成。
java:负责运行部分。会启动Jvm加载运行时所需要的类库,并对class文件进行执行。一个文件要被执行,必须有一个起始点,这个起始点就是main函数。
图片说明


一、关键字和保留字

关键字(keyword)的定义个特点:
定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)
特点:关键字中所有字母都是小写

图片说明

图片说明

保留字(reserved word):现有的java版本尚未使用,以后版本可能作为关键字使用。自己命名标识符的时候要避免使用这些保留字。


二、标识符

标识符(identifier):
java对各种变量、方法和类等要素命名时使用的字符序列称为标识符。

由26英文字母,数字,_,$等组成
注意:①数字不可以开头 ②不可以使用关键字。


三、java中的命名规范(不遵守也能通过编译,建议遵守)

包名:多个单词组成时所有字母都要小写。com.xxx.user.action···
类名、接口名: 由多个单词组成时,所有单词首字母大写。HelloWorld
变量名、方法名:多个单词组成时,第一个单词首字母小写,之后开始首字母大写。getAddress()
常量名:所有字母都要大写。


四、变量

变量的概念

①内存中的一个存储区域;
②该区域内的数据可以在一定的范围内不断变化;
③变量是程序中最基本的存储单元。包含变量类型、变量名、值

变量的作用

用于在内存中保存数据

使用注意

java中每个变量必须先声明,后使用;
使用变量名来访问该区域的数据;
变量的作用域:其定义所有在的{}内;
变量只有在其作用域内才有效;
同一个作用域内,不能定义重名的变量;

五、变量类型

图片说明

1、变量大小及取值范围

图片说明

2、变量使用

整数型变量:byte、short、int、long

Java各整数类型有固定的表数范围和字段长度,不受具体OS的影响,以保证java程序的可移植性。

  • java的整型常量默认值是int型,声明long型常量后面需要加‘l’或者‘L’
  • java程序中变量通常声明为int型,除非不足以表示较大的数,才是用long
  • 计算机中最小的存储单位:bit。
  • 计算机中基本的存储单元:byte。 1 byte = 8 bit
    long a = 123123;          //123123作为int,向上转为long型
    System.out.println(a);

    long b = 12312312312312;   //因为12312312312312超过了int表示的最大范围,不能通过编译
    System.out.println(b);

图片说明
123123在int范围内,所以可以进行转换。

图片说明
12312312312312超过了int表示的最大范围,后面必须加‘l’或‘L’
图片说明

浮点类型:float、double

  • 浮点型常量有两种表示形式:
    1.十进制数形式:5.12 512.0f .512 (必须有小数点)
    2.科学计数法形式:5.12e2
    图片说明

  • float:单精度,尾数可以精确到7位有效数字。在很多情况下,精度很难满足需求。

  • double:双精度,精度是float的两倍。通常采用此类型。

  • Java的浮点型常来常量默认为double型,声明float型常量,须后面加‘f’或‘F’

    不加f或F和long的情况类似。如果定义时不以f结尾,默认为double类型。从double转到float存在精度损失。
    图片说明

float

long整型数,在内存中占用8个字节共64位,它表示的数值有2的64次方,平分正负,数值范围是-2^63 ~ 2^63-1。而float在内存中占4个字节,共32位,但是浮点数在内存中是这样的。
图片说明
图片说明
也就是说,浮点数在内存中的二进制不是直接转换为十进制数值的,而是按照上述公式计算而来,通过这个公式,虽然只用到了4个字节,但是浮点数却比long型最大值要大。这也就是为什么在数据转换时,long类型转换为float类型的根本原因所在。

字符型:char

  • char型数据用来表示通常意义上的字符:只能放一个字符,包括字母、数字、汉字等任意一个字符,可以为空,但不能引号中什么都没有(空格也没)。
  • java中的所有字符都使用Unicode编码,故一个字符可以存储一个字母,一个汉字或其他任意一个字符。
  • char类型是可以进行运算的,因为它都有对应的Unicode码。

变量间运算

这里说的只是7中基本数据类型间的运算,不包含boolean类型

  • 1.自动类型提升

    结论:当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。
    byte、char、short-->int-->long-->float-->double

特别的,当byte、char、short三种类型变量做运算时,结果为int类型,结果必须用int型变量接收。
图片说明

图片说明

  • 2.强制类型转换

    将容量大的向容量小的数据类型的变量转换。可能会造成精度损失。

图片说明

int 4个字节共32位
byte 1个字节共8位
int 128 = 0000 0000 0000 0000 0000 0000 1000 0000
byte i3 = 0000 0000
用byte接收int型数据,将前面的0截取掉,剩余1000 0000。1表示符号位,-128.

引用数据类型:String

  • 声明时必须使用双引号,也不能强转。
    图片说明

    String可以和8种基本数据类型变量做运算,且运算只能是连接运算。

图片说明

全部评论

相关推荐

牛客162194370号:
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-26 16:06
已编辑
快手电商 后端 23k-35k
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务