Java 基础问题整理(更新中)

最近复习java基础的时候发现很多知识点都忘记了,所以在这里专门整理一下。

1.4种访问修饰符


2. switch 接收byte、char、short、int ; 1.5 后支持 枚举 ; 1.7 后支持 String 

3.类型转换

精度:byte<short<int<long<float<double

低精度到高精度自动转换,高精度到低精度需要强制转换
int i = 133; long l = i;
double d = 3.5; float f = (float) d;


小数常量默认double 类型,所以小数常量需要转换才能赋值给float
float f = (float) 3.5;

整数常量默认为int 类型,但是byte char short 类型在不超过精度时,不需要手动转换
byte b1 = 1; byte b2 = (byte) 128;


char 类型不在自动转换之列,所以需要手动转换
char c = 'C';
byte b = (byte) c;
short s = (short) c;
char c1 = (char) b;
char c2 = (char) s;

计算时 byte short char 型的值将被提升为int型,有long转long,有double转double
short s1=1,s2 = 1;
s1 = (short) (s1+s2);


复合赋值运算符 += / -= 会自动转换为左侧的类型

short a = 1; 
a += 1;

自动装箱与自动拆箱

/** 自动拆箱 自动装箱 **/
Integer i1=100;  
Integer i2=100;  
Integer i3=300;  
Integer i4=300;  
System.out.println(i1==i2);		// true 同一个对象
System.out.println(i3==i4);		// 包装基础对象时,-128 <= i <= 127 返回已存在对象, 超出范围返回全新对象
		
Integer i = 100; int ii = 100;
System.out.println(i == ii);	// 包装类与基础数据比较时,包装类会自动拆箱,然后再比较

4.String 类为final,不可以继承;String 类重写了equal方法,所以我们可以使用equal来判断字符串内容是否相等。

5.构造器不能被重写,只能重载;子类的构造都必须调用父类的构造,默认就是super(),所以如果父类没有构造无参数构造函数,必须显式的调用。

6.StringBuffer 与 StringBuilder 的区别时,StringBuilder时单线程环境下使用的,效率略高;而StringBuffer 是线程安全的,多线程下是使用;

7.String s = "123" 与 String s = new String("123"); 的区别

// 以下两条语句创建了1个对象。"凤山"存储在字符串常量池中 
String str1 = "凤山"; 
String str2 = "凤山"; 
System.out.println(str1==str2);//true 
     
//以下两条语句创建了3个对象。"天峨",存储在字符串常量池中,两个new String()对象存储在堆内存中 
String str3 = new String("天峨"); 
String str4 = new String("天峨"); 
System.out.println(str3==str4);//false 


8.java 异常处理

1、 异常都会中断代码执行,除非 try catch 处理之
2、 RuntimeException 为不可查异常,所以不是必须处理的,可以不申明也不处理。
3、 throw 抛出异常 throws 申明异常(交给下一个调用者处理)
4、 try 块后可同时接 catch 和 finally 块,但至少有一个块

9.java 内存

1、内存主要可以分为 堆、栈、方法区、本地方法栈及程序计数器(寄存器)。常量池在方法区中。
2、栈 -- 局部变量,对象引用;堆 -- 对象,数组;方法区 --  常量池,类方法字段描述;本地方法栈与方法区类似,为调用本地方法使用
3、类的只有四种情况会初始化:new 对象 或 操作static字段、static方法 ; reflect 调用; 调用子类的时候父类还没有初始化则会初始化父类; 虚拟机启动时会加载包含main()方法的类
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值