语法
月下未来
既然是对自己未来有帮助的事情,那么为什么不努力的去做呢
展开
-
代码块
代码块1.静态代码块 内部可以打印日志 随着类的加载执行,只执行一次(加载的时候如何知道该类会被加载,new类,反射...) 可以定义多个静态代码块,按声明的先后顺序执行 静态代码块优于非静态代码块执行 只能调用静态属性、方法2.非静态代码块 内部可以打印日志 随着对象的创建执行,每创建一个对象就执行一次代码块 可以定义多个非静态代码块,按声明的先后顺序执行 可以调用静态、非静态的属性、方法...原创 2021-04-06 09:10:48 · 124 阅读 · 0 评论 -
instanceof、isInstance
instanceofobj.instanceof(class) 也就是说这个对象是不是这种类型一个对象是本身类的一个对象 一个对象是本身类父类(父类的父类)和接口(接口的接口)的一个对象 所有对象都是Object 凡是null有关的都是false null.instanceof(class)isInstanceclass.inInstance(obj) 这个对象能不能被转化为这个类一个对象是本身类的一个对象 一个对象能被转化为本身类所继承类(父类的父类等)和实现的接口...原创 2021-04-06 09:10:38 · 216 阅读 · 1 评论 -
Java运算符
Java运算符逻辑运算符(&& || !) 算数运算符(+ - * / +=) 位运算符(^ | &) 其他运算符(三元运算符)位运算符参考按位与:&,两个真即为真,1&1=1,1&0=0,0&1=0,0&0=0 按位或:|,一个真即为真,1|0=1,1|1=1,0|0=0,0|1=1 异或:^,不同为真,1^0=1,1^1=0,0^0=0,0^1=1 左移运算符:<<,转为二...原创 2021-04-06 09:10:25 · 59 阅读 · 0 评论 -
this关键字
this关键字this:当前对象 this.属性名称:当前类中的成员变量(先找本类,找不到再找父类) this():当前类的构造方法,放首行 this.方法名:当前类的成员方法(先找本类,找不到再找父类)/** * this关键字: * 1.调用本类构造方法 * 2.调用成员变量 */public class Person { public static void main(String[] args) { Test1 test = new Te..原创 2021-04-06 09:10:11 · 65 阅读 · 0 评论 -
clone()
实现Cloneable接口,重写Object类的clone()方法对象clone:参考集合clone:参考public class TestClone { /** * 1.现象一:Student类未实现Cloneable接口,会报错 * 原因:在main函数调用clone方法时,会直接调用Object类的方法,直接抛出throws CloneNotSupportedException异常 * 2.现象二:那为啥实现了Cloneable接口.原创 2021-04-05 09:59:00 · 305 阅读 · 1 评论 -
上界通配符、下界通配符
上界通配符、下界通配符参考1.上界通配符:<? extends T> add():不可以加入任何元素(除了null因为null可以为任何类型) get():返回的值的类型默认是T2.下界通配符:<? super T> add():只能添加类型为T和其子类类型的元素 get():返回的值的类型默认是Object3.举例: List<? extends C> list1; // ...原创 2021-04-05 09:56:01 · 896 阅读 · 0 评论 -
定义常量的方式
定义常量的方式接口->常量 外部类->静态内部类->常量 外部类->常量 枚举原创 2021-04-05 09:47:44 · 198 阅读 · 0 评论 -
创建对象的五种方式
创建对象的五种方式public static void main(String[] args) throws Exception{ /** * 1.new 对象() */ User user = new User(); /** * 2..newInstance() * 需要保证该类有无参构造器 * 若里面没有任何构造器,编译器会默认加一个无参构造器,正确 * 若只有有参构造器则,则不添.原创 2021-04-05 09:47:29 · 94 阅读 · 0 评论 -
数据类型
数据类型1.八种基本数据类型没有手动赋值,会被设置默认值,只有在是成员变量的时候 byte、short、int、long = 0 float、double = 0.0 char = ' '(空格字符) boolean = flase2.包装类Interger、String、Byte、Short、Char、Long = null基本数据类型转换: 小 -> 大 直接转int a = 1;long b = a;// long b ...原创 2021-04-05 09:47:10 · 107 阅读 · 0 评论 -
Object类
Object类1.Object类是所有Java类的根父类2.如果类的声明中未使用extends关键字指明其父类,则默认父类为Java.lang.Object类3.Object类 属性:无 方法:equals()、toString()、getClass()、hashcode()、clone()、finalize()、wait()、notify()、notifyAll()4.万物皆对象,除8种数据类型以外都是Object的子类wait()、notify()...原创 2021-04-05 09:46:44 · 204 阅读 · 2 评论 -
反射
反射1.定义:可以在程序运行时,获得任意一个类的所有信息,这种动态获取程序信息以及动态调用对象的功能称为Java语言的反射机制2.获取Class实例的四种方法 ①:.class ②:对象引用.getClass() ③:Class.forName("类路径") ④:加载器加载3.哪些类型可以有Class对象:class(外部类、四种内部类)、interface、数组、枚举、引用数据类型获取Class实例的四种方法/** * ①:.c...原创 2021-04-05 09:46:23 · 163 阅读 · 1 评论 -
static关键字
static关键字参考1.修饰成员方法:称作静态方法,静态方法不依赖于任何对象就可以进行访问 所以在静态方法中不能访问该类的非静态成员变量和非静态成员方法,同理不能写this.属性名、this.方法名;但在非静态成员方法中是可以访问静态成员方法、变量的2.修饰成员变量:静态变量 静态变量和非静态变量的区别是: 静态变量被所有对象共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。 而非静态变量是对象...原创 2021-04-05 09:45:47 · 92 阅读 · 0 评论 -
内部类
内部类1.静态内部类:定义在类内部的静态类 public static class A{} 静态内部类可以访问外部类所有的静态变量、方法,即使是private 静态内部类和一般类一致,可以定义静态变量、方法、构造方法 用外部类.静态内部类访问2.成员内部类:定义在类内部的非静态类,不可以定义静态方法和变量(final修饰的除外)3.局部内部类:定义在方法中的类,不能加权限修饰符,只能写class A{}4.匿名内部类:new一个类如...原创 2021-04-05 09:45:06 · 63 阅读 · 0 评论 -
抽象类、接口
接口接口是对行为的抽象,不能被new,不能实例化 可以定义常量,常量都是公共的,静态的,不可变的,在声明常量的时候必须赋值,final修饰常量时必须赋值 ①:public static final int a = 1②:int a = 1 可以定义方法,方法都是公共的,抽象的 ①:public abstract 返回值类型 方法名(参数) ②:返回值类型 方法名(参数) 接口多继承接口,用extends关键字,不用实现其继承的抽象方法 接口被非抽象类实现,用implemen...原创 2021-04-05 09:44:14 · 156 阅读 · 2 评论