随笔分类 -  Java基础

摘要:静态变量 static修饰变量 静态变量/类变量。静态变量在类加载的时候加载到方法区,并且在方法区中被赋予默认值。由于静态变量先于对象出现,所以可以通过类名来调用静态变量,也可以通过对象调用。这个类的所有对象存储的是这个静态变量在方法区的地址,所以所有对象是共享这个静态变量。 注意: 1. 类是加载 阅读全文
posted @ 2019-09-05 21:36 LeeJuly 阅读(115) 评论(0) 推荐(0) 编辑
摘要:输出try 通过字节码,我们发现,在try语句的return块中,return 返回的引用变量(t 是引用类型)并不是try语句外定义的引用变量t,而是系统重新定义了一个局部引用t1,这个引用指向了引用t1对应的值,也就是try ,即使在finally语句中把引用t指向了值finally,因为ret 阅读全文
posted @ 2019-08-15 22:04 LeeJuly 阅读(104) 评论(0) 推荐(0) 编辑
摘要:对于匿名内部类,它可能引用三种外部变量: 外部类的成员变量 外部方法或作用域内的局部变量 外部方法的参数 对于匿名内部类,它可能引用三种外部变量: 匿名内部类内部,方法和作用域内的内部类内部使用的外部变量也必须是 final 的。原因如下:内部类会自动拷贝外部变量的引用,为了避免: 1. 外部方法修 阅读全文
posted @ 2019-08-15 21:40 LeeJuly 阅读(214) 评论(0) 推荐(0) 编辑
摘要:final关键字: 1.修饰类:当用final修饰一个类时,表明这个类不能被继承。也就是说,如果一个类你永远不会让他被继承,就可以用final进行修饰。final类中的成员变量可以根据需要设为final,但是要注意final类中的所有成员方法都会被隐式地指定为final方法。 2.修饰方法:锁定方法 阅读全文
posted @ 2019-08-13 11:18 LeeJuly 阅读(240) 评论(0) 推荐(0) 编辑
摘要:重载发生在一个类里面,方法名相同,参数的个数或者类型不同,它是一种编译时多态 为什么不能根据返回类型区分重载? 在Java语言中,要重载一个方法,除了要与原方法具有相同的简单名称之外,还要求必须拥有一个与原方法不同的特征签名; 特征签名就是一个方法中各个参数在常量池中的字段符号引用的集合,也就是因为 阅读全文
posted @ 2019-07-25 20:32 LeeJuly 阅读(134) 评论(0) 推荐(0) 编辑
摘要:回调: 函数回调接口: 回调者以及测试 事件监听器 设计事件源,事件监听器(相当于回调接口),事件对象 当事件源对象上发生操作时,它将会调用事件监听器的一个方法,并在调用该方法时传递事件对象过去 事件监听器实现类,通常是由开发人员编写,开发人员通过事件对象拿到事件源,从而对事件源上的操作进行处理 简 阅读全文
posted @ 2019-05-11 10:36 LeeJuly 阅读(1040) 评论(0) 推荐(0) 编辑
摘要:List<String> list=new ArrayList<>(); 很多集合类的底层源码都是泛型来实现的。 如果我们自己实现一个List 我们在编译期间是不会发现类型转换错误的,只有在运行的时候才会报错 Java泛型类: Java泛型方法 前面我们介绍的泛型是作用于整个类的,现在我们来介绍泛型 阅读全文
posted @ 2019-05-07 20:43 LeeJuly 阅读(124) 评论(0) 推荐(0) 编辑
摘要:Lamba表达式和函数式接口: 接口里面只能有一个未实现的方法,然后是可以有default和静态方法实现的。 但在用的时候需要重写未实现的方法: 一般是在实现Runnable接口,sort方法里面这样使用: 引用方法: 对象引用::静态方法名 Math是一个类而abs为该类的静态方法。Functio 阅读全文
posted @ 2019-05-05 00:08 LeeJuly 阅读(146) 评论(0) 推荐(0) 编辑
摘要:基本数据类型: 一个字节:boolean,byte, 两个字节:char,short 四个字节:int,float 八个字节:double,long https://blog.csdn.net/weixin_36431280/article/details/78430786 String类型 utf 阅读全文
posted @ 2019-04-12 01:10 LeeJuly 阅读(1081) 评论(0) 推荐(0) 编辑
摘要:封装的体现: 封装的使用细节: 类的属性的处理: 1.一般使用private访问权限 2.提供相应的get、set方法来访问相关属性,这些方法通常是public修饰的。以提供对属性的赋值与读取操作。(注意!boolean变量的get方法是is开头。) 3.一些只用于本类的辅助性方法,可以使用priv 阅读全文
posted @ 2019-04-10 11:00 LeeJuly 阅读(179) 评论(0) 推荐(0) 编辑
摘要:1.集合转数组toArray的用法 2.数组转集合,只能用List 3.关于数组的复制copyOf 4.System.arraycopy(); copyOf内部也是用的System.arraycopy(); 5.subList方法:截取的新的List是持有原List的引用的 6.Colletions 阅读全文
posted @ 2019-03-14 14:10 LeeJuly 阅读(204) 评论(0) 推荐(0) 编辑
摘要:1.实现conparable接口 2.匿名内部类(用lambda的方式写) 阅读全文
posted @ 2019-03-14 13:31 LeeJuly 阅读(210) 评论(0) 推荐(0) 编辑
摘要:序列化使用场景: 1:永久性保存对象,保存对象的字节序列到本地文件或者数据库中 2:通过序列化以字节流的形式使对象在网络中进行传递和接收; 3:通过序列化在进程间传递对象。 但在做项目中,我发现一个问题就是当对应的实体类在数据库中没有对应的表的时候就必须实现Serializable接口,才能在网络中 阅读全文
posted @ 2019-03-14 11:00 LeeJuly 阅读(385) 评论(0) 推荐(0) 编辑
摘要:一:快速失败(fail—fast) 迭代器模式:就是提供一种方法对一个容器对象中的各个元素进行访问,而又不暴露该对象容器的内部细节。 在用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了修改(增加、删除、修改),则会抛出Concurrent Modification Exception 阅读全文
posted @ 2019-01-16 00:03 LeeJuly 阅读(1550) 评论(0) 推荐(0) 编辑
摘要:java.lang包里的Throwable类有两个重要的子类:Exception(异常)和Error(错误) Error(错误):是程序无法处理的错误,表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java 虚拟机)出现的问题。例如,Java虚拟机运行 阅读全文
posted @ 2019-01-16 00:02 LeeJuly 阅读(200) 评论(0) 推荐(0) 编辑
摘要:两者区别: 1.JDK动态代理只能代理实现了接口的类,动态代理类的字节码在程序运行时由Java反射机制动态生成。 2.Cglib是可以代理没有实现接口的类,cglib是针对类来实现代理的,他的原理是对指定的目标类生成一个子类,并覆盖其中方法实现增强,所以不能对final修饰的类进行代理。底层采用AS 阅读全文
posted @ 2018-12-11 09:34 LeeJuly 阅读(241) 评论(0) 推荐(0) 编辑
摘要:Java让我们在运行时识别对象和类的信息,主要有2种方式:一种是传统的RTTI(running-time type infomation ),它假定我们在编译时已经知道了所有的类型信息;另一种是反射机制,它允许我们在运行时发现和使用类的信息。 反射机制允许程序在运行时取得任何一个已知名称的class 阅读全文
posted @ 2018-12-10 21:47 LeeJuly 阅读(132) 评论(0) 推荐(0) 编辑
摘要:1.首先说运行速度,或者说是执行速度,在这方面运行速度快慢为:StringBuilder > StringBuffer > String String最慢的原因: String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不 阅读全文
posted @ 2018-09-03 13:53 LeeJuly 阅读(124) 评论(0) 推荐(0) 编辑
摘要:InputStream、OutputStream 基于字节操作的 IO InputStream基本使用: OutputStream基本使用: Writer、Reader 基于字符操作的 IO Reader使用: Writer使用: File 基于磁盘操作的 IO 字节流的文件包括图片,音乐,文本等 阅读全文
posted @ 2018-04-29 22:04 LeeJuly 阅读(147) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示