![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaSE
Java基础知识
是阿羡
这个作者很懒,什么都没留下…
展开
-
Java——流
1.分类按照流的方向主要分为输入流和输出流两大类。数据流按照数据单位的不同分为字节流和字符流。按照功能可以划分为节点流和处理流。2.什么是输入/输出流?输入就是将数据从各种输入设备(包括文件、键盘等)中读取到内存中输入就是将数据从各种输入设备(包括文件、键盘等)中读取到内存中输入流模式输出流模式3.输入流所有的输入流都是InputStream抽象类(字节输入流)和Reader(字符输入流)的子类。4.输出流所有输出流类都是 OutputStream 抽象类(字节输出流)和原创 2021-04-22 11:05:01 · 130 阅读 · 0 评论 -
HashMap和ConcurrentHashMap
HashMap :HashMap是线程不安全的,在并发环境下,可能会形成环状链表,导致get操作时,cpu空转,所以,在并发环境中使用HashMap是非常危险的。HashTable : HashTable和HashMap的实现原理几乎一样,差别无非是1.HashTable不允许key和value为null;2.HashTable是线程安全的。但是HashTable线程安全的策略实现代价却太大了,简单粗暴,get/put所有相关操作都是synchronized的,这相当于给整个哈希表加了一把大锁,多线程访问原创 2020-06-21 10:25:07 · 428 阅读 · 0 评论 -
Java设计模式
Java设计模式设计原则:开闭原则:对扩展开放,对修改关闭,就是在程序进行扩展的时候,不能去修改原有的代码里氏代换原则:任何基类可以出现的地方,子类一定可以出现依赖倒转原则:针对接口编程,依赖于抽象而不依赖于具体迪米特法则:一个实体应尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立设计模式工厂模式简单工厂模式根据参数的不同返回不同的实例优点:调用者像创建一个对象,直接向工厂请求即可,不需要知道具体的实现,以提高系统的可维护性,可扩展性原创 2020-06-22 22:45:03 · 246 阅读 · 0 评论 -
Java创建对象的五种方式
Java创建对象的五种方式1. 使用new关键字Object obj = new Object();2.使用反射的Class类的newInstance()创建Class cla = Class.forName("全类名");Object obj = cla.newInstance();3.使用反射的Constructor类的newInstance()创建Class cla = Object.class();Constructor constructor = cla.getConstruc原创 2020-06-22 17:53:17 · 285 阅读 · 0 评论 -
反射的使用及其案例
反射:框架设计的灵魂;将类的各个组成部分封装为其他对象,这个就是反射机制好处:1.可以在程序运行过程中,操作这些对象。2.可以解耦,提高程序的可扩展性获取class对象的方式:Class.forName(“全类名”):将字节码文件加载进内存,返回class对象多用于配置文件类名.class:通过类名的属性class获取对象.getClass():getClass()方法在object类中定义着。###结论:同一个字节码文件(*.class)在一次程序运行过程中,只会被加载原创 2020-06-22 17:23:54 · 452 阅读 · 0 评论 -
内部类
内部类的优缺点优点内部类和外部类可以方便的访问彼此的私有域;内部类是另一种封装,对外部其他类不可见内部类可以实现Java的多继承缺点:结构复杂内部类和外部类的关系非静态内部类的创建必须依赖外部类对象,在没有外部类实例之前无法创建非静态内部类内部类可以直接访问外部类的元素,但外部类不可以直接访问内部类元素,需要通过内部类的引用间接访问。内部类的分类成员内部类:不能拥有任何static修饰的方法和属性,但是可以访问外部类的静态方法和静态属性静态内部类:创建不需要外部类,可以直接创原创 2020-06-19 12:45:01 · 128 阅读 · 0 评论 -
Java对象的序列化与反序列化
java序列化与反序列化是什么?为什么需要序列化与反序列化?如何实现Java序列化与反序列化?本文围绕这些问题进行了探讨。1.Java序列化与反序列化Java序列化是指把Java对象转换为字节序列的过程;而Java反序列化是指把字节序列恢复为Java对象的过程。2.为什么需要序列化与反序列化我们知道,当两个进程进行远程通信时,可以相互发送各种类型的数据,包括文本、图片、音频、视频等, 而这些数据都会以二进制序列的形式在网络上传送。那么当两个Java进程进行通信时,能否实现进程间的对象传送呢?答案是可原创 2020-06-18 12:39:51 · 111 阅读 · 0 评论 -
java的三个时期
java的三个时期编写时期 编译时期 运行时期在我们遇到一个现实中的问题时,我们要将它转化为java的code形式,这也就是编写时期;编写时期生成的文件是(.java)的形式;而当我们在用编译器去编译代码,从而生成(.class)文件,---编译时期当用JVM去运行(.class)文件时,也就是运行时期,这是问们的问题也得到了解决。。...原创 2019-12-04 11:41:13 · 235 阅读 · 0 评论 -
理解抽象类
抽象类在我们了解抽象类之前,想让我们了解一下抽象方法。抽象方法:没有方法体;具体的实现:abstract void fun();抽象方法必须用abstract修饰。说回抽象类:如果一个类有抽象方法,那么这个类必然是抽象类,但是一个抽象类也可以没有抽象方法(当然,我觉得这个条件没有什么意义 抽象类没有抽象方法就说明他的方法可以在父类统一实现,那还要抽象类干什么)但是还是先记住这个概念...原创 2019-12-04 21:19:59 · 88 阅读 · 0 评论 -
Java接口理解
接口:interface,在软件工程中,接口泛指共别人调用的方法或函数。public interface InterfaceName{}接口中可以含有变量和方法,但是,接口中的变量会被隐式地指定为:public static final a;并且只能是public用private会包编译错误,而方法会被隐式的定义为:public abstract void fun();接口是一种极...原创 2019-12-04 22:15:09 · 57 阅读 · 0 评论 -
Java抽象类和接口的区别
语法上的区别:1.抽象类中的成员变量可以是各种类型的,而接口中的只能是public static final的;2.抽象类中的成员方法可以实现,而接口中的只能是抽象方法;3.一个类只能继承一个接口,而可以实现多个类。使用上的区别:1.抽象类是对类进行抽象,而接口是对具体的行为进行抽象;2.抽象类是你”是不是“的关系; 而接口是你“有没有”的关系;你有你就实现,你没有你就不用实现...原创 2019-12-04 22:50:06 · 283 阅读 · 2 评论 -
Java中的内存区域划分
Java中的内存区划分为三个区域:1、栈区在函数中定义的基本类型的变量数据和对象的引用变量都在栈中,栈内存是Java程序的运行区,是在线程创建时创建的,他的生命周期跟随线程的生命周期,线程结束后,占内存也就释放了。栈中的数据是以栈帧的格式存在的,栈帧是一个内存区块,是一个数据集,是有关方法和运行其数据的数据集2、堆区ne出来的对象在堆中,在堆中分配内存,由Java虚拟机自动垃圾回收器来管...原创 2019-12-11 20:25:37 · 272 阅读 · 0 评论 -
类的加载
1.发生在运行时期2.JVM委托classloader类加载器f负责3.不会在一开始的时候加载(## 可以但没有必要)基本都是在用到的时候回去进行一个类的加载(懒加载)4.在构造一个类的对象的时候或者调用静态属性/方法的时候会用到这个类5.类的信息是要被初始化的:类的静态属性或者静态方法会被初始化6.类的信息初始化只会发生在另类的加载时7.类一旦被加载到内存中,会一直保存在内存中(类...原创 2019-12-11 20:38:10 · 57 阅读 · 0 评论