
本文介绍了Java基础知识点(更新中)求职学习资料,有助于帮助完成毕业设计以及求职,是一篇很好的资料。
对技术面试,学习经验等有一些体会,在此分享。
[TOC]
Java基础题
面向对象的特征
- 继承
- 从一个已有的类中派生出一个新的类
- 封装
- 将一个类事物封装成一个类
- 多态
- 允许一个程序中存在多个同名的不同方法。实现方式有子类重写父类方法、在一个类中对方法的重载来实现、子类实现,父类引用。
构造器、重写、重载
- 构造器
- 构造器不能被继承,因此不能被重写,但可以被重载
- 重写
- 重写发生在子类与父类之间的同一个方法
- 子类中重写的方法要与父类中被重写的方法有相同的类型,访问权限不能比父类小,声明的异常类型不能比父类大。
- 是运行时多态
- 重载
- 重载发生在同一个类中
- 重载的定义是参数类型、个数或类型的顺序不同的同名方法
访问修饰符
| 修饰符 | 当前类 |同包| 不同包的子类 | 其他包 |
| ——– | ——– | ——– | ——– |
| public | ✓ | ✓ | ✓ | ✓ |
| protected | ✓ | ✓ | ✓ |
| default | ✓ | ✓ |
| private | ✓ |
自动装箱
装箱的本质是,当我们给一个包装类对象赋一个值的时候,会调用包装类的静态方法valueOf。以Integer类为例
Integer i1=100,i2=100,f3=150,i4=150; i1==i2 //结果为true i3==i4 //结果为false //Integer类的valueOf方法如下:IntegerCache.low=-128,IntegerCache.high=127 public static Integer valueOf(int i) { if (i >= IntegerCache.low && i <= IntegerCache.high) return IntegerCache.cache[i + (-IntegerCache.low)]; return new Integer(i); }
&与&&的区别
- &运算符有两种用法:逻辑与、按位与。&&运算符是短路与运算。
- &&左边的表达式的值是false时,右边的表达式就不会执行。&左边的表达式的值是false时,依旧会执行右边的表达式。
String
String是基本数据类型吗?
不是。Java中的数据类型有基本数据类型和引用数据类型。基本数据类型只有8个:byte、short、int、long、float、double、char、boolean;所以String是引用数据类型。
String和StringBuilder、StringBuffer的区别
| 类型 | 引用的字符串内容是否可变 | 保证线程安全| 效率 |
| ——– | ——– | ——– |
| String | 否 |
| StringBuider | 是 | 不保证线程安全 | 快 |
| StringBuffer | 是 | 保证线程安全 |慢|
什么情况下用+运算符进行字符串连接比调用StringBuffer/StringBuilder对象的append方法连接字符串性能更好?
+运算符进行字符串连接只是连接常量值或字面量值时性能最好。当+运算符进行字符串连接时,连接内容有包含变量或对象,则会创建StringBuilder对象进行append操作,最后将拼接后的StringBuilder对象调用toString()方法处理成String对象。
String s="aa"; String s1="a"+s;==>String s1=new StringBuilder("a").append(s).toString();
String不可继承性
String类是final类,不可以被继承。
String str=new String(“hello”)创建了几个字符串对象
创建了两个对象,一个是方法区常量池的”hello”,一个是在堆上以new创建出的对象
线程
JVM
I/O流
集合
反射
网络
[TOC]
Java基础题
面向对象的特征
- 继承
- 从一个已有的类中派生出一个新的类
- 封装
- 将一个类事物封装成一个类
- 多态
- 允许一个程序中存在多个同名的不同方法。实现方式有子类重写父类方法、在一个类中对方法的重载来实现、子类实现,父类引用。
构造器、重写、重载
- 构造器
- 构造器不能被继承,因此不能被重写,但可以被重载
- 重写
- 重写发生在子类与父类之间的同一个方法
- 子类中重写的方法要与父类中被重写的方法有相同的类型,访问权限不能比父类小,声明的异常类型不能比父类大。
- 是运行时多态
- 重载
- 重载发生在同一个类中
- 重载的定义是参数类型、个数或类型的顺序不同的同名方法
访问修饰符
| 修饰符 | 当前类 |同包| 不同包的子类 | 其他包 |
| ——– | ——– | ——– | ——– |
| public | ✓ | ✓ | ✓ | ✓ |
| protected | ✓ | ✓ | ✓ |
| default | ✓ | ✓ |
| private | ✓ |
自动装箱
装箱的本质是,当我们给一个包装类对象赋一个值的时候,会调用包装类的静态方法valueOf。以Integer类为例
Integer i1=100,i2=100,f3=150,i4=150; i1==i2 //结果为true i3==i4 //结果为false //Integer类的valueOf方法如下:IntegerCache.low=-128,IntegerCache.high=127 public static Integer valueOf(int i) { if (i >= IntegerCache.low && i <= IntegerCache.high) return IntegerCache.cache[i + (-IntegerCache.low)]; return new Integer(i); }
&与&&的区别
- &运算符有两种用法:逻辑与、按位与。&&运算符是短路与运算。
- &&左边的表达式的值是false时,右边的表达式就不会执行。&左边的表达式的值是false时,依旧会执行右边的表达式。
String
String是基本数据类型吗?
不是。Java中的数据类型有基本数据类型和引用数据类型。基本数据类型只有8个:byte、short、int、long、float、double、char、boolean;所以String是引用数据类型。
String和StringBuilder、StringBuffer的区别
| 类型 | 引用的字符串内容是否可变 | 保证线程安全| 效率 |
| ——– | ——– | ——– |
| String | 否 |
| StringBuider | 是 | 不保证线程安全 | 快 |
| StringBuffer | 是 | 保证线程安全 |慢|
什么情况下用+运算符进行字符串连接比调用StringBuffer/StringBuilder对象的append方法连接字符串性能更好?
+运算符进行字符串连接只是连接常量值或字面量值时性能最好。当+运算符进行字符串连接时,连接内容有包含变量或对象,则会创建StringBuilder对象进行append操作,最后将拼接后的StringBuilder对象调用toString()方法处理成String对象。
String s="aa"; String s1="a"+s;==>String s1=new StringBuilder("a").append(s).toString();
String不可继承性
String类是final类,不可以被继承。
String str=new String(“hello”)创建了几个字符串对象
创建了两个对象,一个是方法区常量池的”hello”,一个是在堆上以new创建出的对象
线程
JVM
I/O流
集合
反射
网络
[TOC]
Java基础题
面向对象的特征
- 继承
- 从一个已有的类中派生出一个新的类
- 封装
- 将一个类事物封装成一个类
- 多态
- 允许一个程序中存在多个同名的不同方法。实现方式有子类重写父类方法、在一个类中对方法的重载来实现、子类实现,父类引用。
构造器、重写、重载
- 构造器
- 构造器不能被继承,因此不能被重写,但可以被重载
- 重写
- 重写发生在子类与父类之间的同一个方法
- 子类中重写的方法要与父类中被重写的方法有相同的类型,访问权限不能比父类小,声明的异常类型不能比父类大。
- 是运行时多态
- 重载
- 重载发生在同一个类中
- 重载的定义是参数类型、个数或类型的顺序不同的同名方法
访问修饰符
| 修饰符 | 当前类 |同包| 不同包的子类 | 其他包 |
| ——– | ——– | ——– | ——– |
| public | ✓ | ✓ | ✓ | ✓ |
| protected | ✓ | ✓ | ✓ |
| default | ✓ | ✓ |
| private | ✓ |
自动装箱
装箱的本质是,当我们给一个包装类对象赋一个值的时候,会调用包装类的静态方法valueOf。以Integer类为例
Integer i1=100,i2=100,f3=150,i4=150; i1==i2 //结果为true i3==i4 //结果为false //Integer类的valueOf方法如下:IntegerCache.low=-128,IntegerCache.high=127 public static Integer valueOf(int i) { if (i >= IntegerCache.low && i <= IntegerCache.high) return IntegerCache.cache[i + (-IntegerCache.low)]; return new Integer(i); }
&与&&的区别
- &运算符有两种用法:逻辑与、按位与。&&运算符是短路与运算。
- &&左边的表达式的值是false时,右边的表达式就不会执行。&左边的表达式的值是false时,依旧会执行右边的表达式。
String
String是基本数据类型吗?
不是。Java中的数据类型有基本数据类型和引用数据类型。基本数据类型只有8个:byte、short、int、long、float、double、char、boolean;所以String是引用数据类型。
String和StringBuilder、StringBuffer的区别
| 类型 | 引用的字符串内容是否可变 | 保证线程安全| 效率 |
| ——– | ——– | ——– |
| String | 否 |
| StringBuider | 是 | 不保证线程安全 | 快 |
| StringBuffer | 是 | 保证线程安全 |慢|
什么情况下用+运算符进行字符串连接比调用StringBuffer/StringBuilder对象的append方法连接字符串性能更好?
+运算符进行字符串连接只是连接常量值或字面量值时性能最好。当+运算符进行字符串连接时,连接内容有包含变量或对象,则会创建StringBuilder对象进行append操作,最后将拼接后的StringBuilder对象调用toString()方法处理成String对象。
String s="aa"; String s1="a"+s;==>String s1=new StringBuilder("a").append(s).toString();
String不可继承性
String类是final类,不可以被继承。
String str=new String(“hello”)创建了几个字符串对象
创建了两个对象,一个是方法区常量池的”hello”,一个是在堆上以new创建出的对象
线程
JVM
I/O流
集合
反射
网络
部分转自互联网,侵权删除联系
最新评论