菜鸟LQ的day02

一、标识符:代表标识某些对象或数据
java中,凡是能起名字的,都叫标识符
标识符的命名:不能以数字开始,不能有空格,不能使用关键词
二、数据类型:(精准记忆PPT!!!)
java是强类型语言,对数据类型有严格的区分,对程序员来说编译的时候很严格,有好处
1、基本数据类型:(在整数中默认类型是int类型)
  byte 一个字节;short 两个字节;int 四个字节;long 八个字节
int = byte + 100 成立
long l = 10000L 强制转换
  浮点类型默认是double类型
float f = 3.14F 将double类型强制转换为float类型,再赋给f
  boolean默认false
2、引用数据类型(对象类型)
3、char类型在进行计算时,会自动转换成int类型进行运算,而且每一个字符类型都可以转换成int类型,int类型可以强制转换为char类型
4、ASCII表 表示1-127的数字
5、不同操作系统对数据的表示长度不一样,所以整形的固定长度和范围会使java不受操作系统的影响,保证java的可移植性
6、String不是一个数据类型,而是一个类,默认值是null
三、常量和变量
1、常量:一旦定义,不会改变的变量,被final关键词修饰
final int num = 300;
2、String类型这个类,本身就是final类型的常量
String s = "Hello";
s = "world";-------此时内存重新分配了空间,并不是改变了s本身的值
3、Java 7引入了一个新功能:程序员可以在数值中使用下画线,不管是整型数值,还是浮点型数值,都可以自由地使用下画线。


通过使用下画线分隔,可以更直观地分辨数值中到底包含多少位


例如:int  i  = 123_456_789;
     运行结果:123456789      必须在jre7.0及以上中运行


四、虚拟机的内存
1、三大块:栈空间、堆空间、方法区
栈空间存储的数据是引用(例如:Date d = new Date() 中定义的d)、局部变量、基本数据类型
堆空间存储的数据是对象的值(例如:Date d = new Date() 中new 出来的值)
方法区存储的数据是.class文件、方法、常量(例如:String s = "Hello"; 中的"Hello")
查看是否是原来的值,查看内存地址即可
2、变量的作用域:在某个方法中定义的变量,只能在某个方法中使用,此变量叫局部变量
局部变量的使用原则:必须先赋值再使用
定义在类中的变量,叫成员变量,每一个方法都可以使用
成员变量在使用时,不需要一定赋值,如果使用时,不赋值会使用默认值
五、变量的使用
六、运算符-面试题:逻辑或、逻辑与、位或、位与之间有什么区别?

短路问题:逻辑或、逻辑与 会存在短路效应:1>2 && 3>1 && 3==3  false
 位或、位与不会存在短路效应,会逐个判断真假:1>2 && 3>1 && 3==3  false
七、浮点数不是精确浮点数值,故而if语句里不要使用double类型的判断,因为是不准确的
若想判断double值,就用无限接近值去判断,例如:if( (sum-1) == 0)
在金融界里若要使用double判断,则使用的是另外的一个数据类型,而不是double
八、运算时的数据转换
在基本数据类型运算时,char、byte、short在计算过程中,会首先转成int参与计算
但是这三种类型是不能互相转换的
在基本类型运算过程中,如果有比int范围更广的数据类型,会转成更大的数据类型进行计算
  例如:long a = 1000L;
char i=9;
int x = i + a;---此时,i转换成long型和a相加,然后再赋值给int型的x,出错
在计算过程中如果有浮点类型参与运算,就要转换成浮点类型进行计算
故而得出结论:在计算过程中国,数据会向更高范围的类型进行转换
char、byte、short-->int-->long-->float-->double
任何数据类型和字符串相加,结果都是字符串:int和String相加,int会转换成String,然后进行String的相加
例如:int num = 123;
     String a = "456";
     syso();---输出是123456;




PS:知识点:1、局部变量的使用原则:必须先赋值再使用,不然会报错;
成员变量在使用时,不需要一定赋值,如果使用时,不赋值会使用默认值
   2、自加自减不能使用常量





你可能感兴趣的:(菜鸟LQ的day02)