Java基础知识总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基础预备:低级基础
1.1 java基本类型
byte(字节)
short(短整型)
int(整型)
long(长整型)
float(浮点型)
double(双精度)
char(字符型)
boolean(布尔型)
1.2值传递和引用传递的区别
值传递:实参初始化形参,两个存储单元不同,不影响实参的值
引用传递:实际参数与形式参数指向同一个地址,形式参数的改变将会影响实际参数1.3当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
是值传递。方法调用该对象引用的参数,参数被改变,但是引用不会改变
1.4 &和&&的区别。
&和&&都是逻辑「与」,&&只要第一个表达式是false就不会计算第二个表达式
&也可以作为运算符
2.1使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变
引用变量不能变,引用变量所指向的对象中的内容可以改变
2.2final类型可不可以不初始化,如果没有初始化的final类型应该在哪里初始化?
final一定有初始值,没有初始化叫空白final
如果没有需要声明之后在其构造器中赋值
2.3 "=="和equals方法究竟有什么区别?
「==」是看两个对象引用是否指向同一个对象
「 equals() 」是比较两个对象的内容是否相等
3.1静态变量和实例变量的区别
静态变量的变量前加了static 的修饰,其中一个对象将它值改变,其他对象得到的就是改变后的结果;
实例变量的变量前没加static 的修饰,某一个对象将其值改变,不影响其他对象
3.2是否可以从一个static方法内部发出对非static方法的调用?为什么?
不可以。使用非static方法需要先创建对象,而使用static方法则不用
4.1 java中什么是自动装箱与拆箱呢?
自动装箱是某地方需要Integer类型,你传int类型会自动生成Integer,
反之Integer变int,就是自动拆箱
4.2 int 和 Integer 有什么区别
Int是基本数据类型,Integer是int的封装类。
原始类型封装类
Boolean Boolean
Char Character
Byte Byte
Short Short
Int Integer
Long Long
Float Float
Double Double
5.1请说出作用域public, protected,以及不写时的区别
不写是表示friendly。
作用域当前类同一package 子孙类其他package
public √√√√
protected √√√×
friendly √√××
private √×××
6.1能不能自己写个类,也叫ng.String?
可以,但在应用的时候,需要用自己的类加载器去加载,否则,系统的类加载器永远只是去加载jre.jar包中的那个ng.String。
7.1 排序都有哪几种方法?请列举。用JAVA实现一个快速排序。
冒泡,选择,插入,快速
冒泡排序:
冒泡排序:先比较第一位和第二位,把小数放前面大数放后面,接着比较第二位和第三位,直到最后一位,通过两个for循环再重复总位数次
8.1什么是堆什么是栈。
Java 把内存划分成两种:一种是栈内存,另一种是堆内存。
栈:一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间
堆:用于存放由new创建的对象和数组,数组和对象在没有引用变量指向它的时候,才变成垃圾,不能再被使用,但是仍然占着内存,在随后的一个不确定的时间被垃圾回收器释放掉
8.2 heap和stack有什么区别。
heap是堆
stack是栈
栈:一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间
堆:用于存放由new创建的对象和数组,数组和对象在没有引用变量指向它的时候,才变成垃圾,不能再被使用,但是仍然占着内存,在随后的一个不确定的时间被垃圾回收器释放掉
8.2 Static Nested Class 和 Inner Class的不同。
Static Nested Class是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。
9. 1 数组有没有length()这个方法? String有没有length()这个方法?
数组没有length()这个方法,有length的属性。String有有length()这个方法。
10.1描述一下JVM加载class文件的原理机制?
装载:查找和导入类或接口的二进制数据;
链接:执行下面的校验、准备和解析步骤,其中解析步骤是可以选择的;
校验:检查导入类或接口的二进制数据的正确性;
准备:给类的静态变量分配并初始化存储空间;
解析:将符号引用转成直接引用;
初始化:激活类的静态变量,初始化Java代码和静态Java代码块
10.2、char型变量中能不能存贮一个中文汉字?为什么?
一个char占1个字节,所不能存放
第一章:万事万事皆对象
1.1 面向对象的概念
如果假设一部手机是一个对象的话,那么手机的高度,宽度等可以看做这个手机对象的属性,打电话发短信可以看做这个手机对象的方法,而生产这种手机的模板就是类。