![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 85
噜啦l
这个作者很懒,什么都没留下…
展开
-
网络编程基础
网络编程一、OSI参考模型1.1物理层一、OSI参考模型OSI(Open System Interconnection)开放互联网参考模型最早提出的解决网络通信的标准协议。OSI网络分层: 物理层,数据链路层,网络层,传输层,会话层,表示层,应用层1.1物理层是OSI得最底层,主要是传输原始的比特流(bits),交换机,光纤等,主要是为数据端设备提供传送数据的通道及传输数据...原创 2021-08-30 15:42:01 · 202 阅读 · 0 评论 -
JVM垃圾回收
JVM垃圾回收一、GC原理二、对象被标记为垃圾的方法2.1引用计数器2.2可达性分析三、垃圾回收算法3.1标记-清除算法3.2复制算法3.3标记-整理3.4分代回收算法一、GC原理GC (Garbage Collection:即垃圾回收)的基本原理∶将堆内存中不再被使用的对象进行回收,GC中用于回收的方法称为收集器由于GC需要消耗一些资源和时间,Java在对对象的生命周期特征进行分析后,按照新生代、老年代的方式来对对象进行收集,以尽可能的缩短GC对应用造成的暂停对新生代的对象的收集称为minor原创 2021-08-18 21:31:01 · 54 阅读 · 0 评论 -
阻塞队列介绍
阻塞队列阻塞队列的接口声明形式:public interface BlockingQueue<E> extends Queue<E>阻塞队列提供了一下方法:抛出异常特殊值阻塞超时插入add(e)offer(e)put(e)offer(e,time,unit)移除remove(e)poll(e)take(e)poll(time,unit)检查element(e)peek(e)不可用不可用put、take方法原创 2021-08-18 13:45:57 · 110 阅读 · 0 评论 -
LOCK锁简述
LOCK锁简述一、Lock接口二、ReentrantLock1公平性锁与非公平性锁2.公平性锁3.非公平性锁三、AQS一、Lock接口Lock实现提供了比使用Synchronized方法和语句更广泛的搜定操作,此操作允许更灵活的结构,可以具有很大的属性,可以支持多个相关的Condition对象。public interface Lock { //获取锁 void lock(); //如果当前线程未被中断,则获取其锁 void lockInterruptibly() th原创 2021-08-14 16:05:01 · 720 阅读 · 0 评论 -
Java虚拟机
Java虚拟机一、 JVM的基础知识介绍1.JVM的概念2.JRE/JDK/JVM2.1JRE2.2JDK2.3JVM3、JVM生命周期3.1JVM运行起点3.2JVM两种线程;二、JVM的工作过程2.1类加载的子系统2.2类加载的时机2.2双亲委派模型三、JAVA内存模型一、 JVM的基础知识介绍1.JVM的概念JVM,即Java virtual Machine,Java 虚拟机。JVM是java的核心和基础,在java编译器和os平台之间的虚拟处理器。它是一种利用软件方法实现的抽象的计算机基于下层原创 2021-08-05 14:32:55 · 63 阅读 · 0 评论 -
Java排序算法
Java排序算法1.冒泡排序1.1冒牌排序的思想1.2算法描述1.3代码实现1.4算法分析2.选择排序2.1选择排序的思想2.2算法描述2.3代码实现2.4算法分析3.插入排序3.1 插入排序思想3.2算法描述3.3代码实现3.4算法分析4.堆排序4.1堆排序的思想4.2算法描述4.3代码实现4.4算法分析5.希尔排序5.1希尔排序的思想1.冒泡排序1.1冒牌排序的思想冒泡排序是一种简单的排序算法。它重复的访问要排序的数列,一次进行两个元素的比较操作,如果他们的顺序与预期想法不同则进行元素之间的交换过原创 2021-08-02 18:58:56 · 110 阅读 · 0 评论 -
有关锁的介绍
一、悲观锁和乐观锁1.悲观锁总是假设最坏的情况,每次去拿数据的时候都会认为数据会被别人改变,所以每次拿数据是都会加锁,这样别人拿这个数据就会阻塞直到他拿到锁。在java中Synchronized实现也是悲观锁。悲观锁存在问题:在多线程竞争下,加锁、释放锁会导致比较锁上下文的切换和调度延时,引起性能问题—个线程持有锁会导致其他线程进入阻塞状态Synchronized2.乐观锁乐观锁认为数据一般不会产生冲突,所以在数据进行提交更新时,才会真正对数据是否产生冲突进行检测,如果...原创 2021-07-29 18:56:34 · 85 阅读 · 0 评论 -
java总复习(二)
java总复习(二)一、接口和抽象类的区别二、浅谈异常1.基础常见异常一、接口和抽象类的区别1.应用场景:抽象类:指的是对一种事物的抽象。(比如一个People类中有定义一个work方法,此时子类的不同,所实现的work不同)接口:基于jdk1.8,包含有抽象方法和常量。是对一种行为的抽象。比如说ArrayList和LinkedList都有实现List接口,也就是说List接口对ArrayList和LinkedList的增删改查行为进行抽象。2.抽象类:abstract修饰不能实例化一般原创 2021-07-24 11:37:48 · 68 阅读 · 0 评论 -
java总复习(一)
java总复习1.面向对象的三/四大特征面向对象的三大特征面向对象的四大特征2.final关键字3.Static关键字1.面向对象的三/四大特征面向对象的三大特征封装性:把描述对象属性的变量及实现对象功能的方法结合起来,定义一个程序单位,并保证外界不能任意更改内部属性,能任意调动内部的方法接口。优点:1.实现了低耦合高内聚;2.类内部的结构可以自由修改;3.隐藏实现细节,提出公共的访问方式。继承:大大增强了代码的可复用性,提高了软件的开发效率为程序的修改扩充了材料。继承通过extends关原创 2021-07-18 22:25:15 · 105 阅读 · 0 评论 -
-AVL树
-AVL树一、AVL树的概念二、AVL树相关算法1.AVL树的结点定义2.AVL树左旋3.AVL树的右旋4.AVL树的双旋1)左单旋--》右单旋2)右单旋--》左单旋一、AVL树的概念AVL树是最先发明的自平衡二叉查找树。在AVL树中任何节点的两个子树的高度最大差别为1,所以它也被称为高度平衡树。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。二、AVL树相关算法1.AVL树的结点定义class AVLNode{ AVLNode leftchild;//左孩子原创 2021-06-09 14:34:38 · 73 阅读 · 0 评论 -
String类
String类String类字符串拼接字符串比较String类首先对于String类型,我们先查看它的源码:public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character storage. */ private final char value[]; /** C原创 2021-05-18 09:23:52 · 115 阅读 · 0 评论 -
Static关键字
Static类和String类Static关键字的使用static类三级目录Static关键字的使用static类三级目录原创 2021-05-17 22:31:07 · 59 阅读 · 0 评论 -
java基础知识
java类和对象一级目录二级目录三级目录类面向对象的三大特征思想封装、多态、继承一级目录二级目录三级目录类类是一种实体类型的抽象,它是一个新的数据类型,从语言层面来看,类就是一个数据结构,类定义数据类型的数据(字段)和行为(方法)。而对象是基于类的具体实体,有时称为类的实例。一般的这些个类都有一些内部状态数据,就是对于类而言,它包括属性和方法,比如苹果这个对象,它有甜度,大小等等这些属性特征,然后 苹果还可以被吃,这属于一种行为特征,其实就是一种方法,这里的方法其实就是面向过 程中的函数,表示一原创 2020-11-20 20:37:19 · 139 阅读 · 2 评论 -
线程基础部分
线程基础部分一、线程和进程的概念1.什么是进程?什么是线程?2.进程和线程的关系?3.进程和进程之间的内存是否独立不共享?线程与线程之间呢?4.多线程机制的目的?5.什么时候数据在多线程并发的环境下会存在安全问题?6.怎么解决线程安全问题?7.同步编程模型和异步编程模型二、线程的创建1.编写一个类,直接继承java.lang.Thread,重写run方法2.编写一个类,实现java.lang.Runnable接口,实现run方法3.匿名内部类三、线程的生命周期及常用方法解析1.新建状态2.就绪状态3.运行状原创 2021-02-21 22:46:26 · 107 阅读 · 0 评论 -
volatile关键字
volatile关键字1、使用volatile修饰变量2、volatile特征1)保存内存可见性volatile修饰的变量不会缓存到工作内存中,每一次读取获取最新volatile变量2)禁止指令重排序Java内存不会对volatile指令进行重排序,从而保证对volatile的执行顺序永远是按照书写顺序执行的happens-before规则:volatile字段的写入操作happen before后续同一个字段的读操作volatile修饰的变量产生的汇编代码,会存在一个lock前缀,相当于一原创 2021-02-19 21:08:23 · 167 阅读 · 0 评论 -
HashMap源码分析
HashMap源码分析一、类的继承关系二、类的属性三、类中重要的方法 (构造函数 put remove resize)四、Hash算法一、类的继承关系public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, SerializableHashMap主要特点:HashMap允许空值和空键HashMap是非线程安全HashMap元素是无序{LinkedH原创 2021-02-20 17:05:25 · 139 阅读 · 1 评论 -
HashMap面试题
HashMap面试题:1)JDK1.7与JDK1.8HashMap有什么区别和联系2)用过HashMap没?说说HashMap的结构(底层数据结构 + put方法描述)3)说说HashMap的扩容过程4)HashMap中可以使用自定义类型作为其key和value吗?5)HashMap中table.length为什么需要是2的幂次方6)HashMap与HashTable的区别和联系7)HashMap、LinkedHashMap、TreeMap之间的区别和联系?原创 2021-02-20 16:17:41 · 759 阅读 · 4 评论 -
synchornized关键字
synchornized的使用场景1、两个线程同时访问同一个对象的同步方法 安全2、两个线程同时访问两个对象的同步方法 不安全 test1.func1() test2.func1()3、两个线程同时访问(一个或两个)对象的静态同步方法 安全4、两个线程分别同时访问(一个或两个)对象的同步方法和非同步方法 不安全5、两个线程访问同一个对象中的同步方法,同步方法又调用另外一个非同步方法 不安全6、两个线程同时访问同一个对象的不同的同步方法 安全7、两个线程同时访问静态s原创 2021-02-19 21:00:29 · 127 阅读 · 0 评论