java基础
文章平均质量分 54
java基础知识点
lemon20120331
这个作者很懒,什么都没留下…
展开
-
java 四种引用类型
这就一个强引用类型。他的特点就是不会被GC回收,那怕jvm报出OOM异常.也不会被回收, 如果想要GC回收到这个强引用的话,需要在代码中将这个对象赋值为null,这样GC回收器进行垃圾回收时才会把这个强引用进行垃圾回收,例如。弱引用是用WeakReference进行描述.当gc回收器进行垃圾回收时,不管该引用有没有被使用,都会被直接回收。虚引用是PhantomReference进行描述的,当gc回收器进行垃圾回收时被回收,软引用是用SoftReference进行描述的,指的是有用但是非必要的对象,当。原创 2022-10-01 16:21:35 · 229 阅读 · 1 评论 -
Synchronized使用
简介实现线程同步,让多个线程排队依次获取某个资源,保证数据不会出错。思考synchronized 到底锁定是什么元素?修饰方法静态方法,锁的是类非静态方法,锁的是调用方法的对象修饰代码块.锁定的是传入的对象== 使用sleep()方法是为了更好的查看执行顺序 ==示例修饰非静态方法没有加synchronized关键字修饰的public class Test { public static void main(String[] args) { Te原创 2021-03-23 22:21:45 · 44 阅读 · 0 评论 -
代理模式
代理模式代理模式是面向对象编程中比较常见的设计模式。静态代理优点:可以在不修改被代理类的源码的基础上可以最被代理类的方法进行附加和增强,前提是被代理类和代理类必须实现同一个接口或者继承同一个类缺点:静态代理只可以对一个主题接口进行代理,如果主题接口不同即使方法相同,也是需要创建两个代理类我们需要为每一个服务创建一个代理类,工作量太大,不易管理,同时接口一旦发生变化,则代理类也需要发生变化代理类无法访问被代理类独特的方法,但是一个代理类可以代理同个主题接口下的多个代理所有的代理类每次原创 2020-09-15 23:00:51 · 149 阅读 · 0 评论 -
不使用集合达成数组去重
方法一:就是创建一个和arr长度一样的数组tempArr,然后遍历arr中的元素,对每个元素判断是否在tempArr出现过,如果出现过,那么就不放到新数组里面,也就是不做处理;如果没有出现过,那么就把它放到新的数组里面这种方法数组原来的相对顺序可以保证public static void main(String[] args) { int[] arr = {9, 10, 6, 6, 1, 9, 3, 5, 6, 4}; int[] fun = fun(arr)原创 2020-06-29 11:48:01 · 366 阅读 · 1 评论 -
序列化流
1.什么是序列化流序列化流,就是操作对象的流分类:序列化流: 对象的输出流,写对象反序列化流: 对象的输入流,读对象2.ObjectOutputStream的介绍和使用对象的字节输出流,写对象构造方法public ObjectOutputStream(OutputStream out);序列化操作的前提被序列化的那个类必须实现java.io.Serializable接口,开启序列化功能根接口没有任何方法,这种接口我们称为标记接口!!序列化操作public原创 2020-06-28 19:55:58 · 198 阅读 · 0 评论 -
转换流
1.编码和解码编码: 把字符 --转成–> 对应的码值 比如: a —> 0110 0001解码: 把码值 --解析–> 对应的字符 比如: 0110 0010 —> b2.字符编码什么是字符编码: 一套规则,字符和其码值之间对应的规则比如: 字符a —> 97字符A —> 65字符0 —> 483.字符集什么是字符集: 是指一个系统上支持的所有字符的集合,包括文字,文字、标点符号、图形符号、数字等常见的字符集和常见的字符编码有原创 2020-06-28 19:34:41 · 142 阅读 · 1 评论 -
缓冲流
1.缓冲流的介绍缓冲流也称为高效流,对普通流的性能方面增强(方法上基本和普通流是一模一样的)##### 2.缓冲流的分类字节输出流: OutputStream —> BufferedOutputStream 缓冲字节输出流字节输入流: InputStream —> BufferedInputStream 缓冲字节输入流字符输出流: Writer —> BufferedWriter 缓冲字符输出流字符输入流: Reader —> Bu原创 2020-06-28 19:24:16 · 95 阅读 · 0 评论 -
IDEA启动项目报编码错误
报错1:XML Parser Error on line 1: 前言中不允许有内容。这种情况一般是XML文件的格式问题解决方法: 把报错的那个XML文件,用Notepad++记事本打开后将格式修改为ANSI,然后进行保存就可以了。报错2:Error:(1, 1) java: 非法字符: ‘\ufeff’报错信息如下:Error:(1, 1) java: 非法字符: '\ufeff'Error:(1, 10) java: 需要class, interface或enum解决方法:方法一:原创 2020-06-27 17:34:59 · 1116 阅读 · 0 评论 -
Properties类和 ResourceBundle工具类
Propertie类1.Propertie类的介绍Properties 类表示了一个持久的属性集!什么是集: 它是一个集合什么是属性集: 其他就是键值对,本质就是一个Map集合什么是持久的: Properties类具有和硬盘交互的方法2.构造方法public Properties(); 创建一个空属性的集合public class PropertiesDemo01 { public static void main(String[] args) { //1.创原创 2020-06-27 17:23:27 · 120 阅读 · 0 评论 -
IO流的异常处理
1.JDK7之前的标准IO处理/** * JDK7之前的处理方式 */public static void tryCatch01(){ FileReader fr = null; try { fr = new FileReader("1.txt"); int ch = fr.read(); }catch (IOException ie){ ie.printStackTrace(); }finally {原创 2020-06-27 17:15:41 · 101 阅读 · 0 评论 -
字符流
1.为什么要用字符流因为使用字节流操作文字时容易出现乱码问题所以使用字符流读取中文,字符流以字符为单位操作数据,这样就可以解决中文乱码问题2.字符输入流顶层父类: Reader(抽象类)共性方法:public void close();//释放资源public int read();//一次读一个字符public int read(char[] chs);//一次读取一堆字符,实际读取的字符个数3.FileReader类的使用文件的字符输入流: 以字符为单位从文件中读取数据原创 2020-06-27 17:14:31 · 74 阅读 · 0 评论 -
IO流
1.什么是IO流流: 一种比喻.把数据传输的过程比喻成流I: Input 输入流O: Output 输出流2.IO流的分类a.根据流的流向:输入流输出流b.根类流操作的数据类型:字节流字符流3.Java中IO的四大流字节输出流: OutputStream(抽象类)字节输入流: InputStream(抽象类)字符输出流: Writer(抽象类)字符输入流: Reader(抽象类)Java中所有的流都是以上四种的某一种的子类,并且所有流的命名是非常规范:流原创 2020-06-26 19:27:24 · 125 阅读 · 0 评论 -
人用迭代 神用递归
1.什么是递归所谓的递归是指,在方法中调用方法自己public class RecursionDemo { public static void main(String[] args) { //调用方法 show(); } public static void show(){ System.out.println("show...."); show(); }}注意:无限递归肯定会出错! Stac原创 2020-06-26 19:15:47 · 223 阅读 · 0 评论 -
File
1.File类的作用可以用来表示磁盘上的某个文件或者某个文件夹2.File类的构造public File(String pathname);以指定的路径创建File对象public File(String parent,String child);以指定父路径和子路径创建File对象public File(File parent,String child);以指定父File对象和子路径创建File对象public class FileDemo01 { public static原创 2020-06-26 19:08:10 · 74 阅读 · 0 评论 -
if else与switch的区别
适用范围if /else ifif 语句适用范围比较广,只要是 boolean 表达式都可以用 if 判断switch在JDK1.5之前,switch循环只支持byte short char int四种数据类型.JDK1.5 在switch循环中增加了枚举类与byte short char int的包装类------》对四个包装类的支持是因为java编译器在底层手动进行拆箱,而对枚举类...原创 2020-02-08 20:40:38 · 486 阅读 · 0 评论