注释
注释不会被执行,是写给看代码的人看的。
三种注释
单行注释

多行注释

文档注释

标识符
关键字

Java常见的关键字
考点

总结四个点:
- 首字母应该以字母、$、_开始;
- 开始后可以任意字符;
- 不可用关键字
- 大小写敏感
数据类型
Java是一门强类型语言
强类型语言
比如Java、C++、C
变量定义严格,先定义才能使用。
弱类型语言
比如VB、JS、Python
Java的两大类数据类型
基本类型
Java语言提供了八种基本类型:
数值类型
整数类型
- byte占1个字节
- short占2个字节
- -32768(-2^15)
- 32767(2^15 - 1)
- int(整型)占4个字节
- -2,147,483,648(-2^31)
- 2,147,483,647(2^31 - 1)
- long(长整型)占8个字节。
- -9,223,372,036,854,775,808(-2^63)
- 9,223,372,036,854,775,807(2^63 -1)
浮点数类型
- float(单精度)占4个字节
- double(双精度)占8个字节
字符类型
- char(字符型)占2个字节
- String(字符串)他不是一个关键字,是一个类
布尔类型
引用类型
除了基本类型之外的所有数据类型,都是引用类型。
类;接口;数组。(后续专栏讲解)
拓展
整数进制
常规使用的基本数据类型为10进制:
而Java程序中,可以对变量赋值为各种进制。- //默认十进制,二进制为0b,八进制为0,十六进制为0x<br> public class binary {<br> public static void main(String[] args) {<br> int i=10;<br> int i2=010;<br> int i3=0x10;<br> System.out.println(i);<br> System.out.println(i2);<br> System.out.println(i3);<br> }<br> }
复制代码 输出结果为:
浮点数特性
由于浮点数具备以下特征:
- 有限性;
- 离散性;
- 舍入误差;
- 大约;
- 接近但不等于。
所以我们在实际使用中,要尽量避免使用浮点数进行数值之间的比较。
案例1:两个相同的数值进行比较得false
代码如下:- float f=0.1f;<br> double d=1.0/10;<br> System.out.println(f==d);
复制代码 输出结果得:
使用调试查询变量数值:

两个数值都相同,但输出结果为false。
案例2:过长数值+1,依然等于原数值
代码如下:- float d1=213213213213213213f;<br> float d2=d1+1;<br> System.out.println(d1==d2);
复制代码 输出结果为:

使用调试查询变量数值:

可以看见,浮点数值一但过大,则会直接修改表示形式,就无法对比数值大小了。
解决方案(BigDecimal)
如果涉及浮点数比较大小,最好使用 数据类 BigDecimal 数学工具类。
字符拓展
字符
所有的字符,本身都是Unicode、ASCII码
Unicode(0~65536,2^16)
代码如下:- char a='a';<br> char A='A';<br> char B='B';<br> System.out.println("a="+(int)a);<br> System.out.println("A="+(int)A);<br> System.out.println("B="+(int)B);
复制代码 运行结果如下:

转义字符
除此之外,字符还具备转义字符的含义,一般可用在如下场景:
- 需要插入一些关键性的文字;
- 需要插入一些空格、回车,等特别的字符。
代码如下:- System.out.println("中间是空格转义符→\t←");
复制代码 输出结果:

类型转换
Java运算中,不同类型的数据先转化为同一类型,然后再进行运算。
数据类型优先级

强制类型转换
代码如下:- public class type_Convert {<br> public static void main(String[] args) {<br> int i=128;<br> byte b= (byte) i;//因为最大值是127,当128的时候就是补码<br> System.out.println(i+"\n"+b);<br> }<br> }
复制代码 输出结果如下:
加个括号的形式,就是强制转换,从数据类型的高到低,就需要强制转换。
反之,从低到高就采用自动转换。
自动类型转换
代码如下:- int o=123;<br> double j=o;
复制代码 扩展补充
- 不能对布尔类型进行转换。
- 不能把对象类型转换为不相干的类型。
- 在把高容量转换到低容量的时候,强制转换。
- 转换的时候可能存在内存溢出和精度问题,转换后会除去掉小数部分。
- JDK7 的新特性,数字之间支持用下划线分割。
- int q=10_0000_0000;<br> System.out.println(q);
复制代码 输出结果:变量
定义:可变化的量
- 每个变量都必须声明其类型;
- 是最基本的存储单元,其要素包含变量名、变量类型和作用域。
变量定义:- int i = 1;<br> String i = 2;<br> //int、String 变量类型<br> // i 就是变量名称
复制代码 作用域
类变量:
- public class action_Scope {<br> //类变量:从属与类,可以直接使用类名调用的变量。<br> static double salasy;<br> public static void main(String[] args) {<br> //类变量的调用<br> action_Scope.salasy=200D;<br> System.out.println(action_Scope.salasy);<br> }<br> }
复制代码 输出结果:实例变量
- 从属与对象:如果不自行初始化,这个变量则自动唯默认值 0 0.0
- 布尔变量为true,除了基本类型,其他的引用类型都是null
- 作用范围,new 实例。
- public class action_Scope {<br> //实例变量:从属与对象:如果不自行初始化,这个变量则自动唯默认值 0 0.0<br> //布尔变量为true,除了基本类型,其他的引用类型都是null<br> String name;<br> int age;<br> public static void main(String[] args) {<br> //实例变量的调用<br> action_Scope action_scope=new action_Scope();<br> System.out.println(action_scope.age);<br> }<br> }
复制代码 输出结果:局部变量
- public class action_Scope {<br> public static void main(String[] args) {<br> //局部变量:必须声明和初始化数值<br> int i = 10;<br> System.out.println(i);<br> }<br> }
复制代码 输出结果:常量
一但定义了,就不会变化的量。- public class Demo1 {<br> //修饰符不区分先后顺序。<br> final static double PI=3.14;<br> static final double π=3.14;<br> }
复制代码 命名规范
- 所有变量、方法、类名:见名知意;
- 变量、方法:首字母小写和驼峰原则:mounthSalary
- 常量:全大写字母,多个单词使用下划线隔开。
- 类名:首字母大写,驼峰原则
运算符

- 自增、自减,也可以叫做一元运算符
- a++和++a的区别在于,先执行再++和先++再执行
- 很多运算我们会使用Math工具类进行操作
短路运算
- 当与预算时,如果前者为假,就不会继续向后执行代码了
- 或运算时,如果前者为真,则不会继续执行后面的代码
位运算
位运算就是将变量与变量用二进制的形式进行 与或非 的计算,一般计算IP地址和子网掩码可用使用位运算

面试题:2乘以8怎么运算最快?

利用位运算符,可以根据变量的二进制数值进行移动

优点是运算效率极高(直接是底层机器语言)。
三元运算符
代码:
[code] int en= a |