一.基本数据类型的包装类
1.Integer.MIN_VALUE:int 类型的最小值-2^31
2.Integer.MAX_VALUE:int 类型的最大值2^31-1
3.int Integer.parselnt(String sInteger);
作用:将字符串类型的整数转换为int类型的数据
4.int Integer.toBinaryString(int Value);
作用:将10进制转换为2进制,返回结果String类型。
5.String Integer.toHexString(int Value);
作用:将10进制转换为16进制,返回结果String类型
以上方法都可以通过 . 来对其调用或者其他方法。
如:
2.二进制补码
4.补码规则:
当进位到符号位时舍弃进位的数补码运算时封闭的,运算结果保存在补码范围之内,超过补码范围就会出现溢出。
二.整数类型
三.浮点类型
如图就出现了误差,所以尽量用整数进行运算,用范围值进行比较比较好。
四.字符类型
五.转义字符
六.布尔类型的概念和用法
六.小类型向大类型转换
举个例子:
小类型转换为大类型会丢失数据,float 23位,丢失了一位:
大类型向小类型转换(强制类型转换)
最高位丢失
七.int 与char类型的转换
八.通过args数组获取数据
注意在eclipse中的操作,需要熟悉掌握。
九.通过Scanner从控制台输入数据
获取char类型数据,可以通过方法获取:
10.控制台输入数据是示例(eclipse 与中文输入存在一定的冲突,一般在程序中输入再剪切过去比较好):
十一.自增,自减,自乘,自除(常用于循环语句中对一个变量的值不断改变)
++,与–的位置将会影响输入结果,++i, 先用i再加1,else先输入过后再+1。
i+=1;等价于 i=i+1;四则运算不再重复,原理雷同。
**十二.两个变量值的交换**
如 :交换 a,b的值
方法1: 采用第三变量,作为中介交换
方法2:a=a+b; b=b; b=a-b;
得到的结果就是:
a=a+b,b=a; a=a-b;最后就得到a,b的值交换
java中只有整形才能使用的运算符是 %
最后·谈一下:Java的内存结构是什么,全局变量、临时变量、静态变量分别存在哪里,堆分为哪几块,比如说新生代老生代,那么新生代又分为什么?
答:
内存结构,大体可以分成堆内存,方法区,和栈。
全局变量存放在堆,临时变量存放在栈 没然后静态变量存放在方法区。
下图就解释了内存模型JMM
我们在这块主要关注的就是eden和surviver区,涉及到gc的概念(建议提问的兄弟去补下这块知识,因为真的很重要) 新生代包含一块eden和俩块surviver区,
默认比例是8:1:1 使用复制算法,这块也是minorgc的范围,很频繁。新创建的对象大多分配于此。经历过一定数量gc【默认15次】还没回收的对象晋升老年代。
代码区:是编译器生成的一个exe区段,存放函数体的二进制代码
栈区:存放函数的参数,局部变量的值等,其操作方式类似于数据结构中的栈,const局部变量也是放在栈里 。
堆区:就是malloc和new之类的内存所在区段,一般由程序员分配释放,分配方式类似于链表
静态数据区:是编译器生成的一个exe区段,初始和未初始化的全局变量和局部变量都放在这里。
常量区:是编译器生成的一个exe区段,const全局变量也放在常量区。
全局变量,临时变量,静态变量分别存在那里 。
局部变量保存在栈中,全局变量和静态变量存储在静态数据区。
堆分为哪几块,比如说新生代老生代,那么新生代又分为什么?
java垃圾收集管理器的主要区域,因此很多时候被称为“GC堆”。
分为新生代和老年代;
新生代分为:Eden和Survivor。