Java基础总结100~200集
强制类型转换
- 强转符号只针对于最近的操作数有效,往往会使用小括号提升优先级。
- 2.char类型可以保存int常量,但不能保存int的变量。
- bye和short类型运算时,当做int类型处理。
short s = 12;//ok
s = s-9 ; //no int->short
byte b =10; //ok
b = b+11; //no int ->byte
b = (byte)(b+11)//yes 使用强转
short t =s+b;//错误,只要有byte和short运算,结果自动提升成int类型
基本数据类型和String类型的转换
- 基本数据类型转String类型,将基本数据类型的值+''''即可
- String类型转基本数据类型:通过基本类型的包装类调用parseXX方法即可。
String s5 ="123";
int num1 = Inter.paseInt(s5);
double num2 = Double.paseInt(s5);
- 在将String类型转换成基本数据类型时,要确保String类型能够转成有效类型,比如可以把“123”,转成一个整数,但是不能把“hello”转成一个整数
- 如果格式不正确,就会抛出异常,程序就会终止。
逻辑运算符
- 短路与&&
- 逻辑与&
特点:两个条件都为true,结果为true
&&与逻辑与的区别:
- &&短路与:如果第一个条件为false,则第二个条件不会判断,最终结果为false,效率高
- &逻辑与:不断第一个条件是否为false,第二个条件都要判断,效率低下
注意:在开发中,我们使用的基本时短路与&&。效率高。
- 短路或||
- 逻辑或|
特点:两个条件只要有一个条件成立,结果为true。
||与|的使用区别:
- 短路或:如果第一个条件为true,则第二个条件不会判断,最终结果为true。
- 逻辑或:不管第一个条件是否为true,第二个条件都要判断。
- 逻辑异或^
特点:a^b:逻辑异或,当a和b不同时,则结果为true,否则为false
- 取反操作!
特点:a!当a为ture时,结果为false。
运算符优先级
标识符的明明规则和规范
标识符概念
- java对各种变量、方法和类等命名时使用的字符序列成为标识符
- 凡是自己可以起名的地方都叫标识符
标识符的命名规范
- 由26个字母大小写,0-9,_或者¥组成
- 数字不可以开头
- 不可以使用关键字和保留字,但能包含
- Java中严格区分大小写,无长度限制
- 标识符不能包含空格
标识符的命名规范
- 包名:多单词组成时所有字母都小写
- 类名、接口名:多单词组成时,所有单词的首字母大写
- 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写
- 常量名:所有字母都大写,多个单词用下划线连接:XXX_YYY_ZZZ
保留字
现有的Java版本尚未使用,但是以后的版本可能作为关键字使用,自己命名是要注意避免使用。
进制
#二进制:以0b或者0B开头
#八进制:以数字0开头
#十六进制:0-9及A(10)-F(15),或者以0或0X开头表示。此处的A-F不区分大小写
进制转换问题
- 其他进制转2进制
规则:从最低位(右边)开始,将每个位上的数提取出来,乘以2/8/16的(位数-1)次方,然后求和。
- 其他制转二进制
规则:将该数不断除以2、8、16,直到商为0为止,然后将每一步的余数倒过来,就是对应的二进制
- 二进制转换成八、十六进制
规则:从低位开始,将二进制数每三位、四位一组,转成对应的八进制数
- 八进制转成二进制
规则:将八进制数每一位,转成对应的一个3位的二进制数即可。
- 十六进制转成二进制
规则:将十六进制数每一位,转成对应的一个4位的二进制数即可。
原码、反码、补码
- 二进制的最高位是符号位:0表示正数,1表示负数
- 正数三码合一都是它本身
- 负数的反码:符号位不变,其它位取反
- 负数的补码:它的反码加1
- 负数的反码:它的补码-1
- 0的反码补码都是0
- Java没有无符号数,Java的数都是有符号的
- 在计算机运算的时候,都是以补码的方式运算的
- 当我们看到运算结果的时候,要看他的原码
位运算符
&与、|或、~非
算数右移>>:低位溢出,符号位不变,并用符号位补溢出的高位
算数左移<<:符号位不变,低位补0
逻辑右移>>> 也叫无符号右移,运算规则是:低位溢出,高位补0
注意没有<<<符号
switch分支结构
- 表达式的数据类型,应和case后的常量类型一致,或者是可以自动转成可以相互比较的类型,比如输入的是字符串,而常量是int
- switch(表达式)中表达式的返回值必须是:(byte、short、int、char、enum、String)
- case子句中的值必须是常量,而不是变量
- defalut子句是可选的,当没有匹配的case时,执行default
- break语句用来执行完一个case分支后使程序跳出switch语句块;如果没有写break,程序会顺序执行到switch结尾。
break语句
用来终止某个语句块儿的执行,一般使用在switch或者循环中
二维数组的JVM内存

对象的内存布局

类与对象的内存分配机制


- 类和对象的内存分配机制
Java内存的结构分析:
- 栈:一般存放基本数据类型
- 堆:存放对象(Cat cat,数组等)
- 方法区:常量池(常量,比如字符串),类加载信息
- 示意图
Java创建对象的流程简单分析
Person p = new Person();
p.name = "jack";
p.age = 10;
- 先加载Person类信息(属性和方法信息,只会加载一次)
- 在堆中分配空间,进行默认初始化(看规则)
- 把地址赋给p,p就指向对象。
- 进行指定初始化
方法的调用机制

成员方法
- 返回类型
- 一个方法多个返回值
- 返回类型可以是任意类型,包含基本类型或引用类型
- 如果方法要求有返回数据类型,则方法体重最后的执行语句必须为return,要求返回值类型必须与return的值类型一致或兼容
- 如果方法是void,则方法体中可以没有return语句,或者只写return
- 方法名
- 遵循驼峰命名法,最好见名知意,表达出该功能的意思即可
- 参数列表
- 一个方法可以有0个参数,也可以有多个参数,中间用逗号隔开
- 参数类型可以为任意类型,包含基本类型或引用类型
- 方法定义时的参数称为形式参数,简称形参;方法调用时的参数称为实际参数,简称实参,实参要和形参的类型一致或兼容、个数、顺序必须一致
- 方法体
- 写完成功能的具体语句,可以为输入、输出、变量、运算、分支、循环、方法调用
 
                    
                     
                    
                 
                    
                

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号