- 博客(37)
- 收藏
- 关注
原创 java_反射
1.在运行时判断任意一个对象所属的类2.在运行时构造任意一个类的对象3.在运行时得到任意一个类所具有的成员变量和方法4.在运行时调用任意一个对象的成员变量和方法5.生成动态代理。
2022-08-22 13:14:53
123
1
原创 java_IO流
1.功能提供了对基本类型或对象类型的序列化和反序列化的方法2.ObjectOutputStream提供了序列化功能3.ObjectInputStream提供反序列化功能oos.writeUTF("黄孝辉");oos.writeObject(newDog("小黑",6));System.out.println("数据保存完毕(序列化形式)");}}}}反序列化注意事项1.读写顺序要一致2.要求实现序列化或反序列化对象,需要实现Serialzable。...
2022-07-27 23:18:51
144
原创 java_线程基本使用
2.线程执行同步代码块时,其他线程调用了该线程的suspend()方法将该线程挂起,该线程不会释放锁(应该尽量避免使用suspend()和resume()来控制线程,方法不再推荐使用)Java虚拟机底层调用该线程的start0()方法,底层会创建一个新的线程,调用run,run就是一个简单的方法调用,不会启动新的线程。2.也可以理解为线程同步,即当有一个线程在对内存进行操作时,其他线程都不可以对这个内存地址进行操作,直到该线程完成操作,其他线程才能对该内存地址进行操作。10.join线程的插队。...
2022-07-17 22:18:30
97
原创 java_多线程基础
1.进程是指运行中的程序,使用一个程序操作系统就会为其提供一定的内存空间 2.进程是程序的一次执行过程,或是正在运行的一个程序,是动态过程:有它自身的产生、存在和消亡的过程1.线程是由进程创建的,是进程的一个实体2.一个进程可以有多个线程1.单线程:同一个时刻,只允许运行一个线程2.多线程:同一个时刻,可以执行多个线程,比如:一个QQ可一个同时打开多个聊天窗口,一个下载器可以同时下载多个文件3.并发:同一个时刻,多个任务交替执行,造成一种“貌似同时”的错觉,简单的说单核CPU 实现的多任务就是
2022-06-30 23:53:28
185
原创 java_泛型
1.泛型又称为参数化类型,是jdk5.0出现的新特性,解决数据类型的安全性问题2.在类声明或实例化时只要指定好需要的具体的类型即可3.java泛型可以保证如果程序在编译时没有发出警告,运行时就不会产生ClassCastException异常4.泛型的作用是:可以在类声明时通过一个标识表示类中某个属性的类型,或者某个方法的返回值类型,或者是参数类型泛型的语法:泛型的声明:interface 接口<T>{} 和class 类<K,V>{}比如List,Arr
2022-04-25 21:18:38
59
原创 java_包装类(2)
Mathmath类包含用于执行基本数学运算的方法,如初等函数、对数、平方根和三角函数常用方法:Arrays类:Arrays里面包含了 一系列静态方法,用于管理或操作数组1.toString返回数组的字符串形式 Arrays.toString(arr)2.sort排序3.binarySearch通过二分搜素法进行查找,要求必须排好序4.copyOf数组元素的复制5.fill数组元素的填充6.equals比较两个数组元素内容是否完全一致7.asList将一组值转换
2022-04-11 00:17:15
224
原创 java_包装类(1)
1.针对八种基本数据类型定义相应的引用类型——包装类2.有了类的特点,就可以调用类中的方法包装类和基本数据类型的转换:1.jdk5前的手动装箱和拆箱方式,装箱:基本类型->包装类 反之就是拆箱2.jdk5以后的是自动装箱和自动拆箱3.自动装箱底层调用的是valueOf方法,比如Integer.valueOf()String类:String类的理解和创建对象:注意:1).String类是一个final类,代表不可变的字符序列 2)字符串是不可变的。一个字符串对象一旦.
2022-04-08 16:15:52
381
原创 java_异常处理
基本概念:Java语言中,将程序执行中发生的不正常现象称为”异常“。(开发过程中的语法错误和逻辑错误不是异常)执行过程中所发生的异常事件可分为两类:1.Error(错误):Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况。比如:StrackOverflowError(栈溢出)和OOM(Out Of Memory),Error是严重错误,程序会崩溃2.Exception:其他因编程错误或者偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理。例如空指针访问,
2022-04-06 20:59:53
390
原创 java_注解
1.注解也被称为元数据,用于修饰解释 包、类、方法、属性、构造器、局部变量等数据信息2.和注释一样,注释不影响程序逻辑,但注解可以被编译或运行,相当于嵌入在代码中的补充信息3.在javaSE中,注解的使用目的比较简单,例如标记过时的功能,忽略警告等。在JavaSE中注解占据了重要的角色。例如用来配置应用程序的任何切面,代替javaEE旧版中所遗留的繁冗代码和XML配置等介绍使用Annotation时 要在其前面加@符号,并把该Annotation当成一个修饰符用,用于修饰它支持的程序元素
2022-04-04 22:46:59
41
原创 java_枚举和注解
枚举:枚举是常量的集合,可以理解为枚举属于一种特殊的类,里面只包含一组有限的特定的对象枚举的实现方式:1.自定义类实现枚举(1)不提供setXX方法,防止被修改,因为枚举对象通常是只读的(2)对枚举对象/属性使用static + final共同修饰,实现底层优化(3)枚举对象名通常使用全部大写,常量的命名规范(4)枚举对象根据需要也可以有多个属性具体步骤:1)构造器私有化 2)本类内部创建一组对象 3)对外暴露对象,通过为对象添加public static final修饰符
2022-04-03 01:50:56
76
原创 java_内部类
基本介绍:一个类的内部类又完整的嵌套了另一个类结构。被嵌套的类称为内部类嵌套其他类的类称为外部类。内部类的最大特点就是可以直接访问私有属性,并且可以体现类与类之间的包含关系内部类的分类定义在外部类局部上:(例如方法内)1.局部内部类 》》有类名2.匿名内部类》》没有类名,重点定义在外部类的成员位置上:1.成员内部类 》》 没有static修饰2.静态内部类》》 有static修饰局部内部类的使用:1.可以直接访问外部类的所有成员 包含私有的2.不能添加访问
2022-04-02 23:18:28
470
原创 java_接口
基本介绍接口就是给出一些没有实现的方法,封装到一起,到某个类要使用的时候,再根据具体情况把这些方法写出来,语法:interface 接口名{属性 ;方法;}class 类名 implements 接口{自己属性自己方法必须实现的接口的抽象方法}注意:jdk7.0前,接口的所有方法都没有方法体 jdk8.0后,接口可以有静态方法,默认方法(需要使用default关键字修饰),也就是说接口中可以有方法的具体实现使用细节:1.接口不能被实例...
2022-04-01 21:10:06
308
原创 java_抽象类
当父类的某些方法需要声明,但是又不确定如何实现时,可以将其声明为抽象方法,那么这个类就是抽象类(当一个类中存在抽象方法时,需要将类声明为抽象类)抽象类的介绍:1.用abstract关键字来修饰一个类时,这个类就叫抽象类访问修饰符 abstract 类名{}2.用abstract关键字修饰一个方法时,这个方法就是抽象方法访问修饰符 abstract 返回类型 方法名(参数列表);//没有方法体3.抽象类的价值更多作用是在于设计,是设计者设计好后,让子类继承并实现抽象类()抽
2022-04-01 03:13:17
693
原创 java_final关键字
final 可以修饰类 属性 方法 和局部变量使用到final的情况:1.当不希望类被继承时2.当不希望父类的某个方法被子类重写时3.当不希望类的某个属性的值被修改时4.当不希望某个局部变量被修改时使用细节:1.final修饰的属性又叫做常量;一般命名:XX_XX_XX2.final修饰的属性在定义时,必须赋值,并且以后不能在修改,赋值可以在如下的位置之一:(1)定义时 ,如 : public final double TAX_RATE = 0.08;(2)在构造器中
2022-04-01 02:03:13
59
原创 java_单例设计模式
什么是设计模式:1.静态方法和属性的经典使用2.设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格、以及解决问题的思考方式 。设计模式就像是经典的棋谱,不同的棋局,我们用不同的棋谱,免得我们自己思考和摸索单例模式:1.所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得对象实例的方法2.单例模式有两种方式:1.饿汉模式 2.懒汉模式应用实例:饿汉式1.构造器私有化 》》》防止用户直接new2.类
2022-03-31 23:44:57
232
原创 java_代码块
基本介绍:代码块又称为初始化块,属于类中的成员【即是类的一部分】,类似于方法,将逻辑语句封装在方法中,通过{ }包围起来但是和方法不同,没有方法名,没有返回值,没有参数,只有方法体,而且不通过对象或类显式调用,而是类加载时,或者创建对象时隐式调用基本语法:[修饰符] {代码};注意:1.修饰符可选,要写的话 只能写static2.代码块分为两类,使用static的为静态代码块和普通代码块3.逻辑语句可以为任何逻辑语句(输入、输出、方法调用、循环、判断等)4....
2022-03-31 22:57:26
53
原创 java_main方法
深入理解main方法:public static void main(String [] args){}1.main方法是由java虚拟机调用的2.java虚拟机需要调用类的main()方法,所以该方法的访问权限必须是public3.java虚拟机在执行mani()方法时不必创建对象,所以该方法必须是static4.该方法接收String类型的数组参数,该数组中保存执行java命令时,传递给所运行的类的参数5.java执行的程序 参数1 ,参数2,参数3注意:1.在main.
2022-03-31 02:36:18
248
原创 java_类变量和类方法
类变量:共识:1.static变量是同一个类所有对象共享2.static变量在类加载的时候就生成了什么是类变量:类变量也叫静态变量/静态属性。是该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,同样任何一个该类的对象去修改它时,修改的也是同一个变量。如何定义类变量:访问修饰符 static 数据类型 变量名 ;(推荐)static 访问修饰符 数据类型 变量名;如何访问类变量类名.类变量名 or 对象名.类变量名【静态变量的访问修饰符的访问权
2022-03-30 21:34:52
86
原创 java_Object类详解_(equals、toString、finalize)
equals方法1.==和equals对比(1)==既可以判断基本类型,也可以判断引用类型(2)==如果判断基本类型,判断的是值是否相等。例如:int i = 10 ;double d= 10.0;(3)==如果判断引用类型,判断的是地址是否相等,即判断是不是同一个对象equals方法:(1)equals:是Object类中的方法,只能判断引用类型(2)默认判断的是地址是否相等,子类中往往重写该方法,用于判断内容是否相等hashcode()方法1.提高具有哈希结构的容器的
2022-03-29 21:02:31
282
原创 java_多态_多态数组
1.多态数组数组的定义类型为父类类型,里面保存的实际元素类型为子类类型2.多态参数方法定义的形参类型为父类类型,实参类型允许为子类类型
2022-03-28 16:25:57
614
原创 java_多态_动态绑定机制
动态绑定机制:1.当调用对象方法的时候,该方法会和该对象的内存地址/运行类型绑定2.当调用对象属性的时候,没有动态绑定机制,哪里声明,哪里使用
2022-03-28 15:57:22
365
原创 java_多态
介绍:方法或对象具有多种形态。是面向对象的第三大特征,多态是建立在封装和继承基础之上的。多态的体现:1.方法的多态(重载和重写就体现了多态)2.对象的多态(1)一个对象的编译类型和运行类型可以不一致(2)编译类型在定义对象时,就确定了,不能改变(3)运行类型是可以变化的(4)编译类型看定义时=号的左边,运行类型看= 号的右边3多态的注意事项和使用细节:多态的前提:两个类之间存在继承关系多态向上转型:(1)本质:父类的引用指向了子类的对象(2)语法:父类类型 引
2022-03-27 03:30:02
57
原创 java_方法重写_override
介绍:方法重写就是子类有一个方法,和父类的某个方法的名称、返回类型、参数一样、那么我们就说子类的这个方法覆盖了父类的那个方法细节:1.子类的方法的参数,方法名称要和父类的参数、方法名称完全一致2.子类的返回类型和父类方法返回类型一样,或者是父类返回类型的子类,比如父类返回类型是Object,子类方法返回类型是String3.子类方法不能缩小父类方法的访问权限...
2022-03-26 20:49:59
328
原创 java_super关键字
基本介绍:super代表父类的引用,用于访问父类的属性、方法、构造器基本语法:1.访问父类的属性,但不能访问父类的private属性 super.属性名2.访问父类的方法,但不能访问父类的private方法 super.方法名(参数列表)3.访问父类的构造器 super(参数列表);只能放在构造器的第一句super的好处:1.调用父类的构造器的好处(分工明确,父类属性由父类初始化,子类的属性由子类初始化)2.当子类中有父类中的成员(属性和方法)重名时,为了访问父类的成员,必须通过
2022-03-26 20:22:30
324
原创 java_面向对象_继承
使用细节:1.子类继承了所有的属性和方法,但是私有属性不能在子类直接访问,要通过父类提供的公共方法去访问2.子类必须调用父类的构造器,完成父类的初始化3.当创建子类时,不管使用子类的哪个构造器,默认情况下总会去调用父类的无参构造器,如果父类没有提供无参构造器,则必须在子类的构造器中用super去指定使用父类的哪个构造器完成对父类的初始化工作,否则,编译不会通过4.如果希望指定去调用父类的某个构造器,则显式的调用一下5.super在使用时,需要放在构造器第一行6.super()和thi
2022-03-26 17:37:50
259
原创 java_面向对象_封装
封装:就是把抽象出的数据【属性】和对数据操作【方法】封装到一起,数据被保护在内部。程序的其他部分只有通过被授权的操作【方法】,才能对数据进行操作封装的理解和好处:1.隐藏实现细节 2.可以对数据进行验证,保证安全合理封装的实现步骤:1.将属性私有化 private2.提供一个公共的set方法,用于对属性判断并赋值public void setXxx(类型 参数){//加入业务逻辑属性 = 参数;}3.提供一个get方法,用于获取属性的值public XXX getX.
2022-03-23 18:15:24
269
原创 java_访问修饰符
访问修饰符用于控制方法和属性(成员变量)的访问权限(范围):1.公开级别:public 对外公开2.受保护级别:protected 对子类和同一个包中的类公开3.默认级别:没有修饰符号,像同一个包的类公开4.私有级别:用private 只有类本身可以访问,不对外公开使用的注意事项:只有默认的和public才能修饰类并且遵循以上访问权限的特点...
2022-03-23 17:13:33
289
原创 java_包
包的命名:命名规则:只能包含数字、字母、下划线、小圆点。但不能用数字开头,不能是关键字或者保留字常用的包:java.lang.*:lang包是基本包,默认引入,不需要再引入java.util.* :util包是系统提供的工具包,工具类 例如 Scannerjava.awt.* :网络包,网络开发java.net.* :是做java的界面开发,GUI注意事项:1.package的作用是声明当前类所在的包,需要放在最上面,一个类中最多只有一句package2.import命.
2022-03-23 16:48:05
272
原创 java_构造器
构造器的作用是完成对新对象的初始化。1.构造器的修饰符可以默认,也可以是public protected private2.构造器没有返回值3.方法名和类名必须一样4.参数列表和成员方法规则相同5.构造器的调用是由系统完成的构造器使用细节:1.一个类可以有多个不同的构造器,即构造器的重载2.构造器的名字和类名必须相同3.构造器没有返回值4.构造器是完成对象的初始化,不是对象的创建5.在创建对象时,系统自动调用该类的构造器。6.如果程序员没有定义构造方法
2022-03-23 16:32:38
71
原创 java_this
this关键字注意事项和使用细节:1.this关键字可以访问本类的属性、方法、构造器2.this关键字用于区分当前类的属性和局部变量3.访问成员方法的语法:this.方法名(参数列表);4.访问构造器语法:this(参数列表);注意:只能在构造器中使用(即在构造器中访问另一个构造器);必须放在第一条语句5.this不能在类定义的外部使用,只能在类定义的方法中使用。...
2022-03-23 16:32:11
42
原创 java_作用域
1.在java编程中,主要的变量就是属性(成员变量)和局部变量2.局部变量一般是指在成员方法中定义的变量3.java中作用域的分类全局变量:也就是属性,作用域为整个类体 Cat类:cry eat等方法使用属性局部变量:也就是除了属性之外的其他变量,作用域为定义它的代码块中4.全局变量可以不赋值,直接使用,因为有默认值,局部变量必须赋值后才能使用,因为没有默认值。使用细节:1.属性和局部变量可以重名,访问时遵循就近原则。2.在同一个作用域中,比如同一个成员方法中,两个成员变量,
2022-03-20 16:39:09
366
原创 JAVA学习(六)布尔类型+类型转换
1.布尔类型(boolean),boolean类型数据只允许取值true和flase,无null2.boolean类型占一个字节3.boolean类型适用于逻辑运算,一般用于程序流程控制 比如:if条件控制语句 while循环控制语句 do-while循环控制语句 for循环控制语句 注意:不能使用0或非0的整数代替false和true,这一点和C语言不同自动类型转换1.当Java程序在进行赋值或者运算时,精度小的类型自动转换为精...
2021-07-22 00:00:25
819
原创 JAVA学习(五)字符类型
字符类型(char)字符类型可以表示单个字符,字符类型是char,char是2个字节(可以存放汉字),多个字符我们用字符串String。字符类型使用细节:1.字符常量是用单引号( ' ')括起来的单个字符。例如:char c ='a'; char c1 = '中';char c2 = '9'2.Java中还允许使用转义符 '\' 来将其后的字符转变为特殊字符型常量。例如:char c = '\n';// '\'n表示的就是换行符3. 在Java中,char的本质是一个整数,在输...
2021-07-21 22:08:51
242
原创 JAVA学习(四)API文档
1. API:Application Programming Interface,应用程序编程接口。是Java提供的基本编程接口。中文在线文档:https://www.matools.com2. Java语言提供了大量的基础类,因此Oracle公司也为这些基础类提供了相应的API文档,用于告诉开发者如何使用这些类,以及这些类里包含的方法3. Java类的组织形式...
2021-07-21 21:32:42
280
原创 JAVA学习(三)----常量和数据类型
变量的概念:变量是程序的基本组成单位,变量 相当于内存中一个数据存储空间的表示,你可以把变量看做是一个房间门牌号,通过门牌号我们可以找到房间,而通过变量名可以访问到变量(值)变量的使用: 1)声明变量 2) 赋值 3)使用变量变量是使用注意事项: 1. 变量表示内存中的一个存储区域(不同的变量,类型不同占用空间大小不同) 2. 该区域有自己的名称(变量名)...
2021-07-20 22:51:04
183
原创 JAVA学习(一)-----java基础(包括Java组件)
JAVA重要特点1.Java语言是面向对象的(oop)2.Java语言是健壮的。Javad的强类型机制,异常处理,垃圾的自动收集等是Java程序健壮性的重要保证3.ja
2021-06-15 22:44:54
1207
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人