Java基础知识总结

一、Java编程课本知识总结
1、计算机语言:人与计算机之间通信的语言,由一些指令(数字、符号、和语法等)组成,通过这些指令指挥计算机工作。
2、在Java中类相当于一个程序,所有代码都需要在类中书写。注:Windows平台上的Java虚拟机不能用在Linux平台上,反之亦然。
3、修饰符 class 类名{ 程序代码 }。
4、注释:单行注释//;多行注释/……/;文档注释/*……/。
5、&:不短路运算(检查当前程序每条语句),&&:短路运算(检查程序位于前面的程序)。
6、变量转换(1、自动类型转换也称隐式转换,需满足:一、两种数据类型彼此兼容,二、目标类型的取值范围大于源类型的取值范围;2、强制类型转换也称显式类型转换,当两种类型彼此不兼容或目标类型取值范围小于源类型时。)
7、循环时可在循环前增加标记“itcast:”,当循环到指定位置时使用“break itcast;”跳出本层循环,不影响其他层的循环。
8、方法:一段可以重复调用的代码。
9、程序可通过“数组名.length”的方法来获取数组长度。
10、封装性:将对象的属性和行为封装起来,不用外界知道具体实现细节。继承性:继承函数原有属性。多态性:同一函数,不同语境,多种用法。
11、类是多个对象的共同特征,类是对象的模板,对象是类的实例。
12、Java每个类中至少有一个构造方法,如没有,系统会自动构造一个无参方法。
13、所谓类的封装是指在定义一个类时,将类中的属性私有化(private)。如果外界想要访问私有属性,需要提供Public修饰的共有方法(获取属性值的Get Xxx方法和设置属性的Set Xxx方法)。
14、构造方法定义:1、方法名和类名相同;2、方法名前没有返回值类型的声明;3、在方法中不能使用return语句返回一个值,但是可以单独写return语句作为方法的结束。
15、写java程序时main函数必须有一个字符串数组即String[] args,作用:用来获取用户从命令行输入的参数。
16、this关键字用发:1、可以明确访问一个类的成员变量,解决与局部变量名称冲突问题;2、利用this关键字调用成员方法;3、可在一个构造方法中使用“this([参数1,参数2……])”形式调用其他构造方法。注:1、只在构造方法中使用this调用其他构造方法,不能在成员方法中使用;2、在构造方法中,使用this调用构造方法的语句必须位于第一行,且只能出现一次。
17、可用System.gc()方法来通知Java虚拟机立即回收垃圾,当一个对象在内存中被释放时,它的finalize()方法会被自动调用,因此可通过定义finalize()方法来观察对象何时被释放。
18、1、在Java类中,用static关键字来修饰成员变量(不能修饰局部变量),该变量被称作静态变量,静态变量被所有实例共享,使用“类名.变量名”的形式来访问。2、静态方法,使用“类名.方法名”的方式来访问,也可通过类的实例对象来访问。不被static修饰的成员需要先创建对象才能访问,而静态方法在被调用时可以不创建任何对象。3、在Java类中,使用一对大括号包围起来的若干代码被称为一个代码块,用static修饰的称为静态代码块,当类被加载时,静态代码块会执行,由于类只加载一次,因此静态代码块只执行一次,在程序中,通常会使用静态代码块来对类的成员变量进行初始化。
19、继承描述的是事物之间的所属关系,通过继承可使多种事物形成一种关系体系,子类在继承父类的时候,会拥有父类所有的成员。(继承时需用extends连接)
20、类的继承中需注意:1、Java中类只支持单继承,2、多类可继承一个父类,3、Java中允许多层继承,4、Java中父类和子类是一种相对概念、5、子类拥有父类非 private 的属性、方法。
27、Java 不支持多继承,但支持多重继承。继承分为单继承(一对一)、多重继承(一对一对一)、不同类继承同一个类(一对二)、多继承(多对一)。
21、当子类对象将父类方法重写后,若还要访问,则使用super关键字,具体用法:1、super.成员变量/super.成员方法([参数1,参数2......]);2、super([参数1,参数2......]);注:通过super调用父类构造方法的代码必须放在子类构造方法的第一行,且只能出现一次。在定义类时,如无特殊要求,尽量在类中定义一个无参的构造方法,避免继承时出现未定义的提示错误。
22、final关键字修饰类的特征:1、final修饰的类不能被继承;2、final修饰的方法不能被子类重写;3、修饰的变量是常量,只能赋值一次。
23、Java中被final修饰的变量称为常量,它只能被赋值一次,之后其值不能被改变。
24、抽象类:不包含方法体的方法为抽象方法,抽象方法使用abstract修饰。若要调用抽象类中定义的方法,则需要创建一个子类,在子类中将抽象类中的抽象方法进行实现。
25、接口:如一个抽象类中的所有方法都是抽象的,则可以将这个类用另一种方式来定义,即接口,接口是由常量和抽象方法组成的特殊类,是对抽象类的进一步抽象。定义接口时,使用interface关键字声明,一个接口可以有多个父接口,用逗号隔开,Java使用接口的目的是为了克服单继承的限制,因为一个类只有一个父类,而一个类可实现多个接口。
26、主函数内不能使用super,重写时,函数名需相同,有参无参看是否传参。当通过子类构造方法创建对象时,默认的先执行父类不含参数得构造方法,再执行子类构造方法。
28、this关键字:指向自己的引用。构造方法不能被重写。
29、重载(overloading) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。
每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。
最常用的地方就是构造器的重载。
重载规则:
被重载的方法必须改变参数列表(参数个数或类型不一样);
被重载的方法可以改变返回类型;
被重载的方法可以改变访问修饰符;
被重载的方法可以声明新的或更广的检查异常;
方法能够在同一个类中或者在一个子类中被重载。
无法以返回值类型作为重载函数的区分标准。
30、绝对相等:值相等,空间相等。
31、匿名内部类:在类里面定义一个类,当程序中使用匿名内部类时,在定义匿名内部类的地方往往直接创建该类的一个对象。匿名内部类实现:方法(new 子类(){方法});
32、异常(exception):String getMessage(); 返回throwable的详细信息字符串;void printStackTrace();将此throwable及其追踪输出到标准错误流;void printStackTrace(PrintStream s);将此throwable及其追踪输出到指定的输出流。
33、try...catch语句捕获异常,try{//程序代码}catch(ExceptionType(Exception类及其子类) e){//对exceptionType的处理},注:在try代码块中,异常语句后面的代码不会被执行,如需执行后加finally{//代码程序},即使语句结束,finally语句依旧执行,除System.exit(0);外,其意思是退出当前Java虚拟机。
34、throws关键字抛出异常,用法:方法(参数) throws Exception{//代码程序}
35、异常分类:1、编译时异常(处理:1、try...catch对异常进行捕获;2、用throws关键字抛出异常,调用者对其处理)、2、运行时异常,由程序逻辑错误产生,如运行时数组越界。3、自定义异常,如非负,非0……
36、访问控制级别:private->default->protected->public;
37、Java API:1、通过indexOf(字符/字符串)、lastindexOf(字符/字符串)返回该字符/字符串第一次/最后一次出现的索引,注:索引由0开始计数。2、数据类型、大小写、间的转换。3、替换replace("A","B");B换A,去空格trim();去两端空格。4、字符判断操作,判空(str.isEmpty())、判等(str1.equals(str2))、判有无(str.contains("abc"))、判开头(str.startsWith("abc"))、判结尾(str.endsWith("abc"))。判相等("=="判地址,"equals()"判字符)。字符串的截取(str.substring(4/(4,6)))和分割split().注:在字符索引时,需根据字符串长度确定索引长度,不然会发生字符串角标越界现象。
38、String和StringBuffer区别:1、StringBuffer类中的字符内容、长度都是可变的,且在修改时不会产生新的StringBuffer对象。而String表字符串常量,一旦创建,内容,长度都不可变。2、String类覆盖了Object类的equals()方法,而StringBuffer未覆盖。3、String类对象可使用操作符"+"进行连接,而String Buffer不能。
39、String BUffer类常用方法:1、添加参数append(char c);2、插入字符串insert(int offset,String str);3、移除此序列字符delete(int index);4、删除指定范围的字符或字符串序列delete(int start,int end);5、替换指定的字符或字符串序列replace(int start, int end, String s);6、修改指定位置的字符序列setCharAt(int index, char ch);7、返回缓冲区中的字符串toString();8、反转字符串reverse()。
40、System类常用方法:1、static void exit(int status)该方法用于终止当前正在运行的Java虚拟机;2、static void gc()运行垃圾回收机;3、static native long currentTimeMillis();返回以毫秒为单位的当前时间;4、static String getProperty(String key),获取指定键描述的系统属性。5、static Properties getProperties();获取当前的系统属性。arraycopy(...)数组拷贝;
41、math类:绝对值Math.abs(value);大于参数的最小整数Math.ceil(5.6);小于参数的最大整数Math
.floor(-4.2);小数四舍五入Math.round(-4.6);两数的较大值Math.max(2.1,-2.1);两数最小值Math.min(2.1,-2.1);随机数Math.random();大于等于0.0,小于1.0。
42、Random();无参构造,生成随机数。Random(long seed);有参构造,生成有序相同的随机数。
43、包装类时:1、包装类都重写了Object类中的toString()方法,以字符串形式返回被包装的值;2、除Character外,包装类都有valueOf(String s)方法,可根据String类型参数创建包装类对象,且字符串s非空,能拆分成基本数据类型。3、除Character外,包装类都有parseXxx(String s)的静态方法,将字符串转换为对应的基本类型的数据,参数s非空,且能拆解为基本数据类型。
44、集合,当存储不确定个数的对象时,使用集合来存储。其分为两类,1、Collection,单列集合类的根接口,用以存储符合某种规律的元素,他有两个重要的子接口(list、set),其中,list特点是元素有序,可重复;而set元素无序,不可重复;2、map,双列集合类的根接口,用于存储具有键,值映射关系的元素。注:ArrayList集合在查询元素时比较快,但在增删元素时效率较低,而双向循环链表的LinkedList很好的解决了这一难题。
45、foreach循环,一种更加简洁的for循环,也称增强for循环,语法格式:for(容器中元素类型 临时变量 : 容器变量){执行语句};注:foreach循环虽然书写简单,但其只能访问集合元素,不能对其元素进行修改。


二、复习阶段知识补充
1、Java以开发市场不同被分为三个技术平台:1、JavaSE:为开发普通桌面和商务应用程序提供的解决方案;2、JavaEE:未开发企业级应用程序提供解决方案;3、Java ME:为开发电子消费产品和嵌入式设备提供解决方案。
2、JDK内:1、bin目录,存放可执行文件;2、db目录、小型数据库;3、jre目录、Java程序运行时环境
3、Java.util:包含Java中大量工具类、集合类等;Java.net:包含Java网络编程相关类和接口;java.io:包含输入、输出有关类和接口;java.awt:包含用于构建图形界面GUI的相关接口和类。
4、ob开头二进制,o开头八进制,ox开头十六进制。
5、Java支持先定义,再集体赋值。
6、Java中for语句执行步骤:for(1;2;3){4}(1->2->4->3->2).
7、Java方法调用过程:进入主程序->遇到方法,为参数开辟空间使用方法,返回结果->主程序继续执行、为参数开辟的空间被释放。
8、方法重载满足条件:1、方法名相同,2、参数个数或参数类型不同。
9、数组:数据类型[] 变量名 = new 数据类型[];
10、Java中定义在类中的变量叫做成员变量,定义在方法中的变量叫做局部变量。如成员变量和局部变量相同,在访问时,访问的时局部变量。
11、通过将对象置null,可将对象变为垃圾对象。
12、this.变量名,表成员变量,同名时系统默认调用局部变量。
13、成员内部类:Java中允许在一个类内部定义类,且内部类可以在外部类中被使用,并且能访问外部类的成员。如想通过外部类访问内部类,则需要通过外部类对象去创建内部类对象,创建内部类对象的具体语法格式:外部类名.内部类名 变量名 = new 外部类名().new 内部类名();
14、接口特点:1、其方法都为抽象方法,不能被实例化对象;2、其属性只能是常量;3、一个类实现接口时,如此类为抽象类,则实现接口中的部分方法即可,否则需要实现接口中的所有方法;4、一个类通过implements关键字实现接口时,可以实现多个接口,被实现多接口以逗号隔开。
15、多态:解决了方法同名问题,而且使程序变得灵活,有效提高了程序的扩展性和可维护性。
16、对象类型转换,涉及子类当作父类使用情况时,不能通过父类变量去调用子类中的特有方法,需进行强制类型转换,若无法转换,用instanceof关键字,输出错误提示。如:if (对象(或者对象引用变量) instanceof 类(或接口)){} else {}


三、网站视频学习相关知识总结
1、Java程序编译过程,由.java产生一个或多个.class可执行文件。
2、JDK,Java开发工具,JRE,Java运行环境,JVM,Java虚拟机。
3、JDK/bin:存放命令,如:java.exe-负责运行,javac.exe-负责编译。
4、Windows系统搜索命令时:先搜索当前目录,无结果时,再从环境变量path指定的路径查找,还未找到时,报错。
5、字节(byte):
1 Byte = 8 bit
1 KB = 1024 Byte
1 MB = 1024 KB
1 GB = 1024 MB
1 TB = 1024 GB
6、标识符命名规范:1、最好见名知意;2、驼峰命名法。3、类名、接口名:首字母大写、后面每个单词首字母大写。4、变量名、方法名:首字母小写、后面每个单词首字母大写;5、常量名:全部大写。
7、在强制类型转换时,大数据类型转小数据类型能转换可能会失真,而小数据类型转大数据类型能转换不失真。小转大称自动类型转换,容量从小到大排序:byte=1B<char=short=2B<int<float=4B<long<double=8B,boolean无。注:浮点型不管占多少个字节,都比整数型容量大。char和short可表示的种类数量相同,但是char可取更大的正整数。
8、八种基本数据类型中,除布尔类型的数据外,其他七种数据类型都能相互转换。注:当byte、short、char混合运算的时候,先转换成int类型再运算,当多种数据类型混合运算时,各自先转换成容量最大的那种类型再做运算。
9、计算机存储数据都以补码形式存储。
10、在long类型数据中,如整数过大,可在整数后添加L。
11、扩展类的赋值运算符不改变运算结果类型(int a = 2; double b = 3.0;b = a + 1;b的数据类型不变),而b += a,相当于b = (double)(b + a);会改变原始数据类型。
12、char [065535],而short[-3276832767],虽类型总数相同,但范围不同。
13、逻辑运算符等号两边都为布尔类型,而短路与和短路或只需要等号两边结果相同,只不过短路与和短路或存在短路现象(在一定条件下,若后继结果可通过已知条件判断,那就会结束后继运算,直接输出false)。
14、"return;"语句出现在返回值为void的方法当中主要为了结束当前方法,而为void的方法无返回值。
15、方法内不能再定义方法,一个方法可被重复调用。
16、在循环前可给循环定义名字,即:循环名 for(){},在后续程序中,用break 循环名;结束当前循环。
17、switch后面和case后面只能是int或String类型的数据,不能是探索其他类型。当然byte、short、char也可以直接写到switch和case后面,因为它们可以进行自动类型转换。
18、方法只定义,不调用,是不会执行的,并且JVM不会为其分配运行所属的内存空间;在JVM中存在三块主要的内存空间(方法区内存、堆内存、栈内存);数据结构反应的是数据的存储形式。
19、方法代码片段属于.class字节码文件的一部分,字节码文件在类加载的时候,将其放到了方法区当中。每次调用这个方法时,需要给该方法分配独立的活动场所,在栈内存中分配。方法在调用时,会发生压栈动作,调用完会发生弹栈动作。局部变量在方法体中声明,局部变量运行阶段内存在栈中分配。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,198评论 6 514
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,334评论 3 398
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,643评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,495评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,502评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,156评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,743评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,659评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,200评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,282评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,424评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,107评论 5 349
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,789评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,264评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,390评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,798评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,435评论 2 359

推荐阅读更多精彩内容