Java学习笔记
文章平均质量分 51
小白o_o
这个作者很懒,什么都没留下…
展开
-
反射的一些使应用
通过反射获取类的结构信息(常用方法)第一组:java.lang.Class类getName:获取全类名getSimpleName:获取简单类名getFields:获取所有public修饰的属性,包含本类以及父类的getDeclaredFields:获取本类中所有属性getMethods:获取所有public修饰的方法,包含本类以及父类的getDeclaredMethods:获取本类中所有方法getConstructors: 获取本类所有public修饰的构造器getDeclaredCon原创 2022-02-16 16:29:39 · 372 阅读 · 0 评论 -
类加载(浅)
基本说明反射机制是java实现动态语言的关键,也就是通过反射实现类动态加载静态加载:编译时加载相关的类,如果没有则报错,依赖性太强动态加载:运行时加载需要的类,如果运行时不用该类,即使不存在该类,则不报错,降低了依赖性举例:package com.z.class_;import java.lang.reflect.Method;import java.util.Scanner;/** * @author 小白 * @version 1.0 */public class Cla原创 2022-02-15 17:31:59 · 522 阅读 · 0 评论 -
Class类
基本介绍1.Class也是类,因此也继承Object类2.Class类对象不是new出来的,而是系统创建的3.对于某个类的Class类对象,在内存中只有一份,因为类只加载一次4.每个类的实例都会记得自己是由哪个Class实例所生成5.通过Class对象可以完整地得到一个类的完整结构,通过一系列API6.Class对象是存放在堆的7.类的字节码二进制数据,是存放在方法区的,有的地方称为类的元数据(包括方法代码,变量名,方法名,访问权限等等)Class类常用方法其中创建实例对象的newIns原创 2022-02-15 16:08:38 · 391 阅读 · 0 评论 -
反射 机制
引出1.根据配置文件re.properties指定信息,创建Cat对象并调用方法hiclassfullpath=com.z.Catmethod=hi2.这样的需求在学习框架时特别多,即通过外部文件配置,在不修改源码情况下,来控制程序,也符合设计模式ocp原则(开闭原则:不修改源码,开扩容功能)实例:Cat.javapackage com.z;/** * @author 小白 * @version 1.0 */public class Cat { private Strin原创 2022-02-14 17:44:43 · 149 阅读 · 0 评论 -
Properties类
基本介绍1.专门用于读写配置文件的集合类配置文件格式:键=值键=值2.注意:键值对不需要有空格,值不需要用引号引起来。默认类型是String。3.常用方法:load:加载配置文件的键值对到Properties对象list:将数据显示到指定设备getProperty(key):根据键获取值setProperty(key,value):设置键值对到Properties对象store:将Properties中的键值对存储到配置文件,在idea中,保存信息到配置文件原创 2022-02-11 16:32:08 · 600 阅读 · 0 评论 -
内部类(三)
内部类成员内部类的使用说明:成员内部类是定义在外部类的成员位置,并且没有static修饰。(其本质就是类的一个成员)可以直接访问外部类的所有成员,包含私有的。可以添加任意访问修饰符(public、proctected、默认、private),因为他的地位就是一个成员。作用域和外部类的其他成员一样,为整个类体。成员内部类访问外部类(如:属性)[访问方式:直接访问]。外部类访问成员内部类[访问方式:创建对象,再访问]。外部其他类访问成员内部类。//外部其他类使用成员内部类的两种方法 Out原创 2022-01-23 19:05:48 · 248 阅读 · 0 评论 -
内部类(二)
内部类匿名内部类的使用(重要)(1)本质是类(2)内部类(3)该类没有名字(4)同时还是一个对象说明:匿名内部类是定义在外部类的局部位置,比如方法中,并且没有类名匿名内部类的基本语法new 类或接口(参数列表){ 类体};例:package com.z.innerclass;/** * 演示匿名内部类的使用 */public class AnonymousInnerClass { public static void main(String[] args) {原创 2022-01-23 19:05:08 · 188 阅读 · 0 评论 -
内部类(一)
内部类(一)基本介绍一个类的内部又完整的的嵌套了另一个类结构。被嵌套的类称为内部类,嵌套其他类的类称为外部类。是类的第五大成员(属性、方法、构造器、代码块、内部类),内部类最大的特点就是可以直接访问私有成员,并且可以体现类与类之间的包含关系。基本语法class Outer{ //外部类 class Inner{ //内部类 }}class Other{ //外部其他类}例:package com.z.innerclass;public class InnerCl原创 2022-01-23 19:04:28 · 247 阅读 · 0 评论 -
代码块(四)
Java代码块细节(三)6、创建一个子类时(继承关系),他们的静态代码块,静态属性初始化,普通代码块,普通属性初始化,构造方法的调用顺序如下:1)父类的静态代码块和静态属性(优先级一样,按定义顺序执行)2)子类的静态代码块和静态属性(优先级一样,按定义顺序执行)3)父类的普通代码块和普通属性初始化(优先级一样,按定义顺序执行)4)父类的构造方法5)子类的普通代码块和普通属性初始化(优先级一样,按定义顺序执行)6)子类的构造方法package com.z.codeblock;public原创 2022-01-18 18:47:11 · 210 阅读 · 0 评论 -
代码块(三)
Java代码块细节(二)4、创建一个对象时,在一个类调用顺序是:(重点,难点):1)调用静态代码块和静态属性初始化(注意:静态代码块和静态属性初始化调用的优先级一样,如果有多个静态代码块和多个静态变量初始化,则按他们定义的顺序调用)。 package com.z.codeblock;public class CodeBockDetail02 { public static void main(String[] args) { A a = new A(); }}原创 2022-01-18 18:46:27 · 259 阅读 · 0 评论 -
代码块(二)
Java代码块细节(一)1、static代码块也叫静态代码块,作用就是对类进行初始化,而且它随着类的加载而执行,并且只会执行一次。如果是普通代码块,每创建一个对象就执行。package com.z.codeblock;public class CodeBlockDetail01 { public static void main(String[] args) { DD dd = new DD(); DD dd1 = new DD(); }}cla原创 2022-01-18 18:44:49 · 185 阅读 · 0 评论 -
Java代码块(一)
基本介绍代码块又称初始化块,属于类的成员[即是类的一部分],类似于方法,将逻辑语句封装在方法体中,通过{}包围起来。但和方法不同,没有方法名,没有返回,没有参数,只有方法体,而且不用通过对象或类显示调用,而是加载类时,或创建对象时隐式调用。基本语法[修饰符]{ 代码};注意:1、修饰符可选,只有static。2、代码块分为两类,即static修饰的静态代码块,以及没有static修饰的普通代码块。3、逻辑语句可以为任何逻辑语句(输入、输出、方法调用、循环、判断......原创 2022-01-18 16:28:23 · 270 阅读 · 0 评论 -
Java动态绑定机制
机制当调用对象方法的时候,该方法会和该对象的内存地址/运行类型绑定。 当调用对象属性时,没有动态绑定机制,哪里声明,哪里使用。实例package com.z.poiy_.Dynamic_;public class DynamicBinding { public static void main(String[] args) { //a的编译类型A,运行类型B A a = new B();//向上转型 System.out.prin..原创 2022-01-17 15:13:28 · 99 阅读 · 0 评论