ava入门必背条腾讯云开发者社区

大家好,又见面了,我是你们的朋友全栈君。

1、编写:编写的Java代码保存在以“.java”结尾的源文件中。

5、java关键字中所有字母都为小写

6、Java中的名称命名规范:

7、字符串是属于一个类,属于引用数据类型

12、Java中的所有字符都使用Unicode编码,一个字符可以存储一个字母,一个汉字,所以java中char类型是两个字节。

13、boolean类型数据只允许取值true和false,无null。不可以使用0或非 0 的整数替代false和true。Java虚拟机中没有任何供boolean值专用的字节码指令,Java语言表达所操作的 boolean值,在编译之后都使用java虚拟机中的int数据类型来代替:true用1表示,false 用0表示。

14、虽然long类型是8个字节,float是4个字节,但是float类型采用科学计数法存储,所以float类型的存储范围比long类型更大。

19、自动类型转换:容量小的类型自动转换为容量大的数据类型。byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型。

20、强制类型转换:将容量大的数据类型转换为容量小的数据类型,但可能造成精度降低或溢出。

21、字符串不能直接转换为基本类型,但通过基本类型对应的包装类则可以实现把字符串转换成基本类型。

22、计算机底层都以二进制补码的方式来存储数据。

23、正数(最高位是0)的原码、反码、补码都相同,负数(最高位是1)的补码是其反码+1。

24、赋值运算符:= += -= *= /= %=,运算的结果不会改变变量本身的数据类型。short i = i + 1;由于常量“1”默认是int型的,所以编译会报错,使用short i += 1,则做到了+1的作用,也没有改变数据类型。

25、&与&&、| 与 | | 的区别:&&、| | 具备短路功能,左边的条件成立或者不成立,右边的条件不用再判断,&、| 不管什么情况,都要把所有条件判断完。

26、位运算:位运算符操作的都是整型的数据。(左移运算符)<< :在一定范围内,每向左移1位,相当于 * 2(右移运算符)>> : 在一定范围内,每向右移1位,相当于 / 2

27、流程控制:顺序结构:程序从上到下执行。分支结构:if-else if – else、switch-case循环结构:for、while、do-while

28、数组属于引用数据类型变量,但是数组的元素既可以是基本数据类型,也可以是引用数据类型。

29、数组的长度一旦确定就不能修改,初始化完成,长度就定了。

30、数组静态初始化:数组元素的初始化和数组元素的赋值同时进行。例如:int a[ ] = new int [ ] { 1,2,3 };

31、数组动态初始化:数组元素的初始化和数组元素的赋值分开进行。例如:int b[ ] = new int [5]; b[0] = 1 ;

32、数组元素的默认初始化值:整型:0浮点型:0.0字符型:0或者’\u0000’,而非’0’布尔类型:false引用数据类型:null

33、关键字 break、continue 可以带标签使用(类似于C语言的goto语句)break label;//结束指定标识的一层循环结构。continue label;//结束指定标识的一层循环结构当次循环。

34、面向对象vs面向过程面向过程:强调的是功能行为,以函数为最小单位,考虑怎么做。面向对象:强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。

35、面向对象中两个重要的概念:类:对一类事物的描述,是抽象的、概念上的定义对象:是实际存在的该类事物的每个个体,因而也称为实例(instance)

36、虚拟机栈,即为平时提到的栈结构。局部变量存储在栈结构中;new出来的结构(比如:数组、对象)加载在堆空间中。补充:对象的属性(非static的成员变量)也是加载在堆空间中。int arr [ ] = new arr [ ],以等号“=”为界,左边是局部变量存放在栈,右边是new 的机构,存放在堆中。

方法区:类的加载信息、常量池、静态域

37、“属性”与“变量”的区别:

属性:可以在声明属性时,指明其权限,使用权限修饰符。常用的权限修饰符:private、public、缺省、protected —>体现为封装性。.局部变量:不可以使用权限修饰符。

属性:类的属性,根据其类型,都默认初始化值。.整型(byte、short、int、long:0)浮点型(float、double:0.0)字符型(char:0 (或’\u0000’))布尔型(boolean:false)引用数据类型(类、数组、接口:null).局部变量:没默认初始化值。意味着,我们在调用局部变量之前,一定要显式赋值。特别地:形参在调用时,我们赋值即可。

属性:加载到堆空间中 (非static)局部变量:加载到栈空间

38、 如果方法没返回值,“return;”表示结束此方法的意思。

39、封装性思想具体的代码体现:

封装性思想具体的代码体现:

体现一

将类的属性xxx私化(private),同时,提供公共的(public)方法来获取(getXxx)和设置(setXxx)此属性的值

体现二

不对外暴露的私有的方法

体现三

单例模式(将构造器私有化)

体现四

如果不希望类在包外被调用,可以将类设置为缺省的。

40、权限修饰符的范围:

41、4种权限都可以用来修饰类的内部结构:属性、方法、构造器、内部类。修饰类的话,只能使用:缺省、public。

42、如果没显式的定义类的构造器的话,则系统默认提供一个空参的构造器。

43、一个类中定义的多个构造器,彼此构成重载。

44、一旦我们显式的定义了类的构造器之后,系统就不再提供默认的空参构造器。

45、一个类中,至少会有一个构造器。

46、this可以理解为:当前对象 或 当前正在创建的对象。

47、可以显式的使用”this(形参列表)”方式,调用本类中指定的其他构造器,但是构造器中不能通过”this(形参列表)”方式调用自己(死循环)。

50、使用”xxx.*”方式表明可以调用xxx包下的所结构。但是如果使用的是xxx子包下的结构,则仍需要显式导入。

51、一个类可以被多个子类继承(一个爸爸可以有多个儿子),但是一个类只能有一个父类(一个儿子只能有一个亲生爸爸)

52、子类继承父类以后有哪些不同?

55、什么是方法的重写(override 或 overwrite)?答:子类继承父类以后,可以对父类中同名同参数的方法,进行覆盖操作。

56、重写的规则:

57、什么是重写和什么是重载?

概念

说明

重 载

是指允许存在多个同名方法,而这些方法的参数不同。编译器根据方法不同的参数表,对同名方法的名称做修饰。对于编译器而言,这些同名方法就成了不同的方法。它们的调用地址在编译期就绑定了。Java的重载是可以包括父类和子类的,即子类可以重载父类的同名不同参数的方法。所以,对于重载而言,在方法调用之前,编译器就已经确定了所要调用的方法,这称为“早绑定”或“静态绑定” 。

重写

方法重写的前提是发生在具有继承关系的两个类之间,只等到方法调用的那一刻,解释运行器才会确定所要调用的具体方法,这称为“晚绑定”或“动态绑定”。

58、super调用属性、方法:

59、super调用构造器:

60、子类对象实例化过程:

61、多态性:可以理解为一个事物的多种形态。对象的多态性:父类的引用指向子类的对象(或子类的对象赋给父类的引用),Person p = new Man(); 。有了对象的多态性以后,我们在编译期,只能调用父类中声明的方法,但在运行期,我们实际执行的是子类重写父类的方法。总结:编译,看左边;运行,看右边。多态运行时行为,不是编译时行为。

62、对象的多态性,只适用于方法,不适用于属性(编译和运行都看左边)。

63、Object类中定义的equals()和==的作用是相同的:比较两个对象的地址值是否相同.即两个引用是否指向同一个对象实体。

64、String、Date、File、包装类等都重写了Object类中的equals()方法。重写以后,比较的不是两个引用的地址是否相同,而是比较两个对象的”实体内容”是否相同。

65、“==”如果比较的是基本数据类型变量:比较两个变量保存的数据是否相等。(不一定类型要相同,有自动类型提升)如果比较的是引用数据类型变量:比较两个对象的地址值是否相同.即两个引用是否指向同一个对象实体。

66、当我们输出一个对象的引用时,实际上就是调用当前对象的toString()。

67、Object类中toString()的定义:

68、像String、Date、File、包装类等都重写了Object类中的toString()方法,使得在调用对象的toString()时,返回”实体内容”信息。

69、基本数据类型与对应的包装类:

70、自动装箱和自动拆箱(JDK 5.0之后)

71、static关键字可以用来修饰属性、方法、代码块、内部类。

72、静态变量 vs 实例变量

73、static修饰属性的说明:① 静态变量随着类的加载而加载,可以通过”类.静态变量”的方式进行调用。② 静态变量的加载要早于对象的创建。③ 由于类只会加载一次,则静态变量在内存中也只会存在一份:存在方法区的静态域中。

74、static修饰方法的说明:①随着类的加载而加载,可以通过”类.静态方法”的方式进行调用。②静态方法中,只能调用静态的方法或属性。非静态方法中,既可以调用非静态的方法或属性,也可以调用静态的方法或属性。

75、在静态的方法内,不能使用this关键字、super关键字(生命周期)。静态属性和静态方法的使用,都可以从生命周期的角度去理解。

76、单例设计模式:就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例。

代码实现一:

代码实现二:

好处:延迟对象的创建。坏处:线程不安全。

77、静态代码块使用说明:

①内部可以输出语句②随着类的加载而执行,而且只执行一次③作用:初始化类的信息④如果一个类中定义了多个静态代码块,则按照声明的先后顺序执行⑤静态代码块的执行要优先于非静态代码块的执行⑥静态代码块内只能调用静态的属性、静态的方法,不能调用非静态的结构

78、非静态代码块使用说明:

内部可以输出语句随着对象的创建而执行每创建一个对象,就执行一次非静态代码块作用:可以在创建对象时,对对象的属性等进行初始化如果一个类中定义了多个非静态代码块,则按照声明的先后顺序执行非静态代码块内可以调用静态的属性、静态的方法,或非静态的属性、非静态的方法

79、实例化子类对象时,涉及到父类、子类中静态代码块、非静态代码块、构造器的加载顺序:由父及子,静态先行。

80、属性的赋值顺序:

执行的先后顺序:① – ② / ⑤ – ③ – ④

81、final的使用说明:

82、abstract可以用来修饰:类、方法。

3.注意点:

83、接口使用interface来定义,Java中,接口和类是并列的两个结构。

JDK7及以前:只能定义全局常量和抽象方法

全局常量:public static final的.但是书写时,可以省略不写抽象方法:public abstract的

JDK8:除了定义全局常量和抽象方法之外,还可以定义静态方法、默认方法。

84、接口中不能定义构造器的!意味着接口不可以实例化。

85、Java开发中,接口通过让类去实现(implements)的方式来使用。如果实现类覆盖了接口中的所抽象方法,则此实现类就可以实例化。如果实现类没覆盖接口中所的抽象方法,则此实现类仍为一个抽象类。

86、Java类可以实现多个接口 —>弥补了Java单继承性的局限性格式:class AA extends BB implements CC,DD,EE。

87、接口与接口之间可以继承,而且可以多继承。如下:

88、接口使用上也满足多态性,接口,实际上就是定义了一种规范,下面这个例子可以帮你深刻理解并记住接口!

89、Java8中关于接口的新规范①接口中定义的静态方法,只能通过接口来调用。

②通过实现类的对象,可以调用接口中的默认方法。如果实现类重写了接口中的默认方法,调用时,仍然调用的是重写以后的方法。

④如果实现类实现了多个接口,而这多个接口中定义了同名同参数的默认方法,那么在实现类没重写此方法的情况下,报错。–>接口冲突。这就需要我们必须在实现类中重写此方法。

⑤如何在子类(或实现类)的方法中调用父类、接口中被重写的方法。

90、内部类的分类:成员内部类(静态、非静态 )、局部内部类(方法内、代码块内、构造器内)。

91、成员内部类的理解:一方面,作为外部类的成员

调用外部类的结构可以被static修饰可以被4种不同的权限修饰

另一方面,作为一个类:

类内可以定义属性、方法、构造器等可以被final修饰,表示此类不能被继承。言外之意,不使用final,就可以被继承可以被abstract修饰

92、如何在外部类创建成员内部类的对象?(静态的,非静态的)

93、如何在成员内部类中调用外部类的结构?

95、java异常处理的抓抛模型“抛”:程序在正常执行的过程中,一旦出现异常,就会在异常代码处生成一个对应异常类的对象,并将此对象抛出。 一旦抛出对象以后,其后的代码就不再执行。

关于异常对象的产生:① 系统自动生成的异常对象② 手动的生成一个异常对象,并抛出(throw)

“抓”:可以理解为异常的处理方式:

① try-catch-finally② throws

96、异常处理模版:

注意点:

98、如果父类中被重写的方法没throws方式处理异常,则子类重写的方法也不能使用throws,意味着如果子类重写的方法中异常,必须使用try-catch-finally方式处理。

99、子类重写的方法抛出的异常类型不大于父类被重写的方法抛出的异常类型。

100、在程序执行中,除了自动抛出异常对象的情况之外,我们还可以手动的throw一个异常类的对象。

THE END
0.从入门到实战Python100个代码大全初学编程100个代码大全100个完整的Python代码,篇幅会非常长,以下为你精选了一些常见类型的Python代码示例,涵盖基础语法、数据处理、文件操作、函数定义等多个方面。 包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】! 一、基础语法篇(篇幅原因,此次仅展示部分) jvzquC41dnuh0lxfp0tfv87523e8:;6985:0c{ykenk0fnyckny03==333997
1.C语言经典100例c语言必背100代码文章浏览阅读3.3k次,点赞6次,收藏9次。这 100 个 C 语言经典示例涵盖了。的各种场景,希望对你有所帮助!_c语言必背100代码jvzquC41dnuh0lxfp0tfv8|cpipjpsnp3:60c{ykenk0fnyckny03=;6;4885
2.C语言经典100例(1~10)适合初学者(注释详细)C语言经典100例(1~10)适合初学者(注释详细) 实例1—无重复数字组数 1.题目:有 1、2、3、4 四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?并求出个数。 程序分析:可填在百位、十位、个位的数字都是 1、2、3、4,组成所有的排列后再去掉不满足条件的排列。 #include <stdio.h> intmain(){ inti, j, jvzquC41dnuh0lxfp0tfv87724e:3=822670c{ykenk0fnyckny03=<3;4>25
3.近100个C语言基础算法案例(初级篇)c语言算法100例源代码: /* C Program to print a sentence. */ #include <stdio.h> int main() { printf("C Programming"); /* printf() prints the content inside quotation */ return 0; } 输出: C Programming 2、C语言打印用户输入的一个整数 源代码: jvzquC41dnuh0lxfp0tfv8fwvq}bppqgk1gsvrhng1jfvjnnu1:25=9833
4.经典C源程序100例(收藏)c语言必背100代码经典C源程序100例 (收藏) 【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。 2.程序源代码:jvzquC41dnuh0lxfp0tfv8Rqdkjpi|4ctvodnn4fgvgjn|4374649<
5.经典的初学编程代码,有注释。初学编程100个代码大全经典的初学编程代码,有注释。 本文介绍了C语言的基础知识,并通过实例展示了如何使用C语言进行简单的编程操作。 #include<stdio.h> /* main() { enum Liquid{// enum枚举类型 ounce=1,cup=8,pint=16,quart=32,gallon=12}; enum Liquid jar; jar=quart;jvzquC41dnuh0lxfp0tfv8Mgnnu`ondYqtre1jwvkerf1mjvckrt1=:89:81;
6.编程必背100个代码认识达内从这里开始 编程必背100个代码 这里有一些简单的代码供初学者练习:输出数字 3。定义变量 4。添加操作减法运算 6。乘法运算 7。除法运算 8。检查变量是否存在 9.检查变量是否为数字 10。检查变量是否为字符串 11。循环输出编号 12。循环输出字jvzquC41uj4ugmz0ep5but46:97747mvon
7.编程必备!100个高频代码术语全解析编程必背100个代码在程序员的世界里,代码如同我们的第二语言。掌握核心编程术语,不仅能让你流畅阅读技术文档,更能快速理解不同编程语言的底层逻辑。本文精心整理了 100 个贯穿全栈开发的高频术语,结合使用场景解析,助你构建扎实的编程词汇体系。 一、基础语法核心词(1-10) jvzquC41dnuh0lxfp0tfv8r2a8944B9261gsvrhng1jfvjnnu1759>9;;7?
8.C语言必背100代码系列第十篇:安全与加密技术C语言必背100代码系列文章目录 第一篇:基础语法与入门必背代码 核心内容:Hello World、条件判断、循环结构、数组基础、函数定义等。 第二篇:数组与字符串操作 核心内容:数组排序、字符串处理、多维数组、字符匹配、内存拷贝等。 第三篇:指针与内存管理 jvzquC41dnuh0lxfp0tfv8Xvctz`o||kp1gsvrhng1jfvjnnu175;983:6<