JAVASE基础笔记总结全套.docx
- 文档编号:23398395
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:79
- 大小:302.85KB
JAVASE基础笔记总结全套.docx
《JAVASE基础笔记总结全套.docx》由会员分享,可在线阅读,更多相关《JAVASE基础笔记总结全套.docx(79页珍藏版)》请在冰豆网上搜索。
JAVASE基础笔记总结全套
1基本知识点
1.JDK(JavaDeveloperKit)
2.Applet小应用程序
init()start()stop()destroy()
没有构造方法
3.ANSIAmericaNationalStandardInstitute(ANSI编码在不同国家是不一样的)
4.小技巧:
替换文本中所有空行^\s*\n同时改一下option
5.习惯Java源文件名词第一个大写,包名小写;
6.升级三个因素:
1.提高效率。
2.简化书写。
3.提高安全性。
7.JavacTest.java编译
JavaTest运行java.exe是JVM
8.打包编译javac–d.test.java
9.Main方法的args数组用来存放命令参数(commandarguments)
10.命名规则字符,$,下划线开头
11.避免用单个字母命名
变量尽可能在他被使用的地方附近定义
12.>>算数运算符>>>逻辑运算(高位补零)
13.值域小的可以直接赋值给值域大的;(自动类型提升)
14.数组
1.声明时可以不指定大小,使用时必须指定,以便向系统申请指定的空间;
2.type[]arrayName=newtype[size];
3.每个数组都有成员变量length下标最大为length-1
4.Type[]arr1,arr2[]等价于arr1[],arr2[][];arr1和arr2维数不同,不能赋值;
15.Java各种循环的判别式都是Boolean类型的;
16.只有成员变量,系统才自动赋一个默认值
对于局部变量,必须初始化;
17.素数的判断
for(intnum=2;num<=10000;num++,flag=false){
for(inti=2;i if(num%i==0){ flag=true;break;//不是素数 } } If(flag==false){//是素数 System.out.println(num); } } 18.Java编程语言只有值传递参数(对象的引用,对象的值) 19.Java整数默认为int型,小数默认为double型 20.非静态方法不能出现在Main()函数中 21.哈希码是由对象的实例域产生的一个整数,如果自定义类,就要实现这类的hashcode() 22.可变参数: 其实就是上一种数组参数的简写形式。 不用每一次都手动的建立数组对象。 只要将要操作的元素作为参数传递即可。 隐式将这些参数封装成了数组。 publicstaticvoidshow(Stringstr,int...arr) 23.定义函数的步骤 1.既然函数是一个独立的功能,那么该功能的运算结果是什么先明确,也就是明确函数的返回值类型; 2.在明确定义该功能的过程中是否需要未知的内容参与运算,这是在明确函数的参数列表(参数的类型和参数的个数) 24.this语句: 用于构造函数之间进行互相调用。 this语句只能定义在构造函数的第一行。 因为初始化要先执行。 25.this.: this代表它所在函数所属对象的引用。 简单说: 哪个对象在调用this所在的函数,this就代表哪个对象。 26.this的应用: 当定义类中功能时,该函数内部要用到调用该函数的对象时,这时用this来表示这个对象。 但凡本类功能内部使用了了本类对象,都用this表示。 27.publicstaticvoidmain(String[]args) 主函数: 是一个特殊的函数。 作为程序的入口,可以被jvm调用。 主函数的定义: 1.public: 代表着该函数访问权限是最大的。 2.static: 代表主函数随着类的加载就已经存在了。 3.void: 主函数没有具体的返回值。 4.main: 不是关键字,但是是一个特殊的单词,可以被jvm识别。 5.(String[]arr): 函数的参数,参数类型是一个数组,该数组中的元素是字符串。 字符串类型的数组。 6.主函数是固定格式的: jvm识别。 7.jvm在调用主函数时,传入的是newString[0]; 28.final实例变量没有默认值,必须先赋值; 29.final: 最终。 作为一个修饰符, 1.可以修饰类,函数,变量。 2.被final修饰的类不可以被继承。 为了避免被继承,被子类复写功能。 3.被final修饰的方法不可以被复写。 4.被final修饰的变量是一个常量只能赋值一次,既可以修饰成员变量,有可以修饰局部变量。 5.当在描述事物时,一些数据的出现值是固定的,那么这时为了增强阅读性,都给这些值起个名字。 方便于阅读。 而这个值不需要改变,所以加上final修饰作为常量: 常量的书写规范所有字母都大写,如果由多个单词组成,单词间通过_连接。 6.内部类定义在类中的局部位置上是,只能访问该局部被final修饰的局部变量。 2类与对象 1.设计类的方法 a)是什么 b)有什么 c)做什么 2.名词提炼法: 找名词和动词; 3.类设计的技巧: 1.一定要保证数据私有 2.一定要对数据初始化 3.不要在类中使用过多的基本类型 4.不是所有的域都需要独立的域访问器和域修改器 5.将职责过多的类进行分解 6.类名和方法名要体现它们的职责 4.类之间的关系: 依赖: uses-a 聚合: has-a意味着类A的对象包含类B的对象 继承: is-a 5.其实定义类,就是在描述事物,就是在定义属性和行为。 属性和行为共同成为类中的成员(成员变量和成员方法); 6.开发面向对象: 其实就是找对象使用,没有对象就创建对象,找对象,建立对象,使用对象,维护对象的关系; 7.Personp=newPerson("zhangsan",20); 该句话都做了什么事情? 1,因为new用到了Person.class.所以会先找到Person.class文件并加载到内存中。 2,执行该类中的static代码块,如果有的话,给Person.class类进行初始化。 3,在堆内存中开辟空间,分配内存地址。 4,在堆内存中建立对象的特有属性。 并进行默认初始化。 5,对属性进行显示初始化。 6,对对象进行构造代码块初始化。 7,对对象进行对应的构造函数初始化。 8,将内存地址付给栈内存中的p变量。 8.什么使用静态? 1.要从两方面下手: a)因为静态修饰的内容有成员变量和函数。 2.什么时候定义静态变量(类变量)呢? a)当对象中出现共享数据时,该数据被静态所修饰。 b)对象中的特有数据要定义成非静态存在于堆内存中。 9.什么时候定义静态函数呢? 1.当功能内部没有访问到非静态数据(对象的特有数据), 2.那么该功能可以定义成静态的 10.static特点: 1.随着类的加载而加载。 也就是说: 静态会随着类的消失而消失。 说明它的生命周期最长。 2.优先于的对象存在明确一点: 静态是先存在。 对象是后存在的。 3.被所有对象所共享 4.可以直接被类名所调用 5.建议使用类名而不是对象调用静态方法 11.实例变量和类变量的区别: 1,存放位置。 类变量随着类的加载而存在于方法区中。 实例变量随着对象的建立而存在于堆内存中。 2,生命周期: 类变量生命周期最长,随着类的消失而消失。 实例变量生命周期随着对象的消失而消失。 12.静态使用注意事项: 1,静态方法只能访问静态成员。 非静态方法既可以访问静态也可以访问非静态。 2,静态方法中不可以定义this,super关键字。 因为静态优先于对象存在,所以静态方法中不可以出现this。 3,主函数是静态的。 13.静态有利有弊 利处: 对对象的共享数据进行单独空间的存储,节省空间。 没有必要每一个对象中都存储一份。 可以直接被类名调用。 弊端: 生命周期过长。 访问出现局限性。 (静态虽好,只能访问静态。 ) 2.1小知识点 1.类: 对某种具有共同特征类型的一类对象的定义 a)类的修饰符: publicabstractfinal b)类的访问控制符: public 2.对象: 是一些相关变量和方法的集合 a)对象可以访问它的成员变量和成员方法,如果A对象有一个引用名指向了B对象,则对象A也可以访问B对象公开方法与变量;(通过.运算符) b)每个对象都可以用this指向它自身; 3.实例: 以类为模板创建的对象: new出来的; 4.封装性: 允许或禁止访问类或对象的数据和成员方法的能力; 5.继承性: 获取另一个类(超类)的状态和行为; 6.多态性: 同名的多个方法共同存在一个程序的情况; 7.重载性: 允许一个成员方法有多重定义,定义多个版本的构造方法; a)Java允许重载任何方法,不仅仅是构造函数 b)重载没有访问控制限制,返回类型也可以不一样,它只关心你参数必须不一样; 8.抽象: (方法抽象)(数据抽象) 不考虑问题的细节 9.对象的操作 a)修改自身状态 b)对外发布消息 10.一个对象影响其它对象: 通过调用那个对象的方法,而不是直接改变那个对象; 11.对象的克隆是指创建一个新对象且新对象和原对象状态相同,当克隆对象修改时,不会影响源对象; 12.引用类型: 引用类型变量的名字不是表示变量的本身而是变量的存储地点,一般通过new进行初始化; 13.成员变量: a)成员变量修饰符: publicprotectedprivatestaticfinal b)成员变量开辟在堆内存,在它定义的类中处处有效; 14.局部变量: 在它定义的块中有效(不在方法间传递) a)局部变量前面不能放置任何访问修饰符,除了final b)局部变量开辟在栈中,必须赋初值 15.类变量: (静态成员变量) a)可以直接通过类名访问; b)不管对象被被实例化多少次,一个静态成员变量仅存一个版本(如果一个对象修改了该变量,其它对象也会受影响; c)静态初始化器当类进入内存事,系统调用执行,而构造方法是在执行new操作后自动执行; 16.静态方法: 只能使用静态成员变量,输入参数及其它静态成员方法; a)静态方法不能直接访问非静态方法; 17.实例变量: 没有static限定的变量就是实例变量; 18.实例方法: 没有static限定: 每个对象都有自己实例方法的复制; 19.构造方法: 构造与类名同名,它在类实例化对象时被执行,且没有返回值; 构造方法应紧跟成员变量的定义; 构造方法不能被继承,因此不能重写(override),但是可以被重载(overload) 20.构造函数: 可以用来给对象初始化,一new出来就具备某些属性; a)如果重载了构造函数,就必须自己添加默认的构造函数; b)当在类中自定义了构造函数后,默认的构造函数就没有了。 21.构造函数与一般函数的区别: a)写法上区别 b)运行上不同: 构造方法是对象一建立就运行,一般方法是对象调用才执行,给对象添加对象具备的功能; c)一个对象的建立,构造函数只运行一次,而一般方法可以运行多次; 22.什么时候定义构造函数 a)当分析事物时,该事物存在具备一些特性或者行为,那么将这些内容定义在构造函数 23.常量: publicstaticfinal 24.包: 类与接口的集合; 25.域和方法的访问控制符: publicprivateprotected默认 同一个类 同一个包 不同的子包 不同非子包 Public Ok Ok Ok Ok Protected Ok Ok Ok Default Ok Ok Private Ok 26.一个从抽象类拓展的类,如果没有把抽象方法具体化,则它也是一个抽象类,抽象类不能实例化,也就是不能直接产生对象。 在抽象类中声明抽象方法可以迫使子类实现继承来的的抽象方法; 27.构造代码块{} a)作用: 给对象进行初始化。 对象一建立就运行,而且优先于构造函数执行。 b)和构造函数的区别: 构造代码块是给所有对象进行统一初始化, 而构造函数是给对应的对象初始化。 c)构造代码快中定义的是不同对象共性的初始化内容 28.静态代码块: 格式: static{ 静态代码块中的执行语句。 } 特点: 随着类的加载而执行,只执行一次,并优先于主函数。 作用: 用于给类进行初始化的。 28. 2.2常见实用类 2.2.1String类 1.定义Stringstr1=”list”; Stringstr2=newString(”list”); 2.用“+”进行字符串的连接和添加 3.长度从0开始计算,最后一个下标N-1,总长N; 4.方法 1.Booleanequals(Strings)比较本身内容是否相等 2.IntCompareTo(Strings)当前与s相同=0小于<0大于>0 5.Strings=newString(“list”); 1.创建了两个StringObject,先创建了list对象再创建了s这个对象; 6.字符串的Hashcode是由内容导出来的; 7.常用操作方法: 1.获取。 1.1字符串中的包含的字符数,也就是字符串的长度。 intlength() 1.2根据位置获取位置上某个字符。 charcharAt(intindex): 1.3根据字符获取该字符在字符串中位置。 intindexOf(intch): 返回的是ch在字符串中第一次出现的位置。 intindexOf(intch,intfromIndex): 从fromIndex指定位置开始,获取ch在字符串中出现的位置。 intindexOf(Stringstr): 返回的是str在字符串中第一次出现的位置。 intindexOf(Stringstr,intfromIndex): 从fromIndex指定位置开始,获取st在字符串中出现的位置。 intlastIndexOf(intch) 2.判断。 2.1字符串中是否包含某一个子串。 booleancontains(str): 特殊之处: indexOf(str): 可以索引str第一次出现位置,如果返回-1.表示该str不在字符串中存在。 所以,也可以用于对指定判断是否包含。 if(str.indexOf("aa")! =-1) 而且该方法即可以判断,有可以获取出现的位置。 2.2字符中是否有内容。 booleanisEmpty(): 原理就是判断长度是否为0. 2.3字符串是否是以指定内容开头。 booleanstartsWith(str); booleanendsWith(str); 2.5判断字符串内容是否相同。 复写了Object类中的equals方法。 booleanequals(str); 2.6判断内容是否相同,并忽略大小写。 booleanequalsIgnoreCase(); 3.转换。 3.1将字符数组转成字符串。 构造函数: String(char[]) String(char[],offset,count): 将字符数组中的一部分转成字符串。 静态方法: staticStringcopyValueOf(char[]); staticStringcopyValueOf(char[]data,intoffset,intcount) staticStringvalueOf(char[]): 3.2将字符串转成字符数组。 char[]toCharArray(): 3.3将字节数组转成字符串。 String(byte[]) String(byte[],offset,count): 将字节数组中的一部分转成字符串。 3.4将字符串转成字节数组。 byte[]getBytes(): 3.5将基本数据类型转成字符串。 staticStringvalueOf(int) staticStringvalueOf(double) //3+"";//String.valueOf(3); 基本数据类型+"" 基本数据类型.toString(基本数据类型值); 如: Integer.toString(34);//将34整数变成"34"; 特殊: 字符串和字节数组在转换过程中,是可以指定编码表的。 4,替换 Stringreplace(oldchar,newchar); 5,切割 String[]split(regex); 6,子串。 获取字符串中的一部分。 Stringsubstring(begin); Stringsubstring(begin,end); 7,转换,去除空格,比较。 7.1将字符串转成大写或则小写。 StringtoUpperCase(); StringtoLowerCase(); 7.2将字符串两端的多个空格去除。 Stringtrim(); 7.3对两个字符串进行自然顺序的比较。 intcompareTo(string); 2.2.2StringBuffer类 1.是一个可变字符序列,是字符串缓冲区。 2.特点: 1.长度是可变化的。 2.可以字节操作多个数据类型。 3.最终会通过toString方法变成字符串。 3.定义StringBuffersb=newStringBuffer(“list”); 4.String类的“+”实质上也是先转换成StringBuffer的append和同String运算; 5.方法: 1.存储。 StringBufferappend(): 将指定数据作为参数添加到已有数据结尾处。 StringBufferinsert(index,数据): 可以将数据插入到指定index位置。 2.删除。 StringBufferdelete(start,end): 删除缓冲区中的数据,包含start,不包含end。 StringBufferdeleteCharAt(index): 删除指定位置的字符。 3.获取。 charcharAt(intindex) intindexOf(Stringstr) intlastIndexOf(Stringstr) intlength() Stringsubstring(intstart,intend) 4.修改。 StringBufferreplace(start,end,string); voidsetCharAt(intindex,charch); 5.反转。 StringBufferreverse(); 6.将缓冲区中指定数据存储到指定字符数组中。 voidgetChars(intsrcBegin,intsrcEnd,char[]dst,intdstBegin) 2.2.3System类 1.System: 类中的方法和属性都是静态的。 2.System类3个静态方法与这三个流很有关联 1.VoidsetIn(InputStreamin)可以重新指定输入流in为System.in 2.VoidsetOut(PrintStreamout) 3.VoidsetErr(PrintStreamout)可以重新指定输出流out为System.err 3.获取时间: System.currentTimeMillis(); 4.out: 标准输出,默认是控制台。 5.in: 标准输入,默认是键盘。 6.获取系统属性信息: PropertiesgetProperties(); 1.获取所有属性信息。 for(Objectobj: prop.keySet()) { Stringvalue=(String)prop.get(obj); System.out.println(obj+": : "+value); } 2.Propertiesprop=System.getProperties(); //因为Properties是Hashtable的子类,也就是Map集合的一个子类对象。 //那么可以通过map的方法取出该集合中的元素。 //该集合中存储都是字符串。 没有泛型定义。 3.如何在系统中自定义一些特有信息呢? System.setProperty("mykey","myvalue"); 4.获取指定属性信息。 Stringvalue=System.getProperty("os.name"); System.out.println("value="+value); 5.可不可以在jvm启动时,动态加载一些属性信息呢? Stringv=System.getProperty("haha"); System.out.println("v="+v); 2.2.4Math类 1.doubled=Math.ceil(16.34);//ceil返回大于指定数据的最小整数。 2.doubled1=Math.floor(12.34);//floor返回小于指定数据的最大整数。 3.longl=Math.round(12.54);//四舍五入 4.random返回0-1之间的小数; 2.2.5Date类 1.Dated=newDate(); System.out.println(d);//打印的时间看不懂,希望有些格式。 //将模式封装到SimpleDateformat对象中。 SimpleDateFormatsdf=newSimpleDateFormat("yyyy年MM月dd日Ehh: mm: ss"); //调用format方法让模式格式化指定Date对象。 Stringtime=sdf.format(d); System.out.println("time="+time); 2.获取任意年的二月有多少天? 思路: 根据指定年设置一个时间就是 c.set(year,2,1)//某一年的3月1日。 c.add(Calenar.DAY_OF_MONTH,-1);//3月1日,往前推一天,就是2月最后一天。 2,获取昨天的现在这个时刻。 c.add(Calenar.DAY_OF_MONTH,-1); 2.2.6Runtime类 1.该类并没有提供构造函数。 说明不可以new对象,那么会直接想到该类中的方法都是静态的。 发现该类中还有非静态方法,说明该类肯定会提供了方法获取本类对象。 而且该方法是静态的,并返回值类型是本类类型。 由这个特点可以看出该类使用了单例设计
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVASE 基础 笔记 总结 全套