![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
滑板不摔跤
这个作者很懒,什么都没留下…
展开
-
递归实现树结构 动态控制展开层级
最近页面加载树结构特别卡顿。最后用异步加载节点的方式提升了页面树结构的速度。当第一次加载我们规定,第一个几点只展示到第三层,且每一层的第一个节点默认展开。其他只显示是否有子节点因此后端写了次接口可以动态控制想要的初始展开层级。其效果如果/** * 判断是否有子节点,并将子节点加入 * @param data * @param nodeNum 当前节点位置 * @param dept 想要节点深度 * @return */private List<TreeDTO>原创 2020-11-26 16:57:55 · 554 阅读 · 0 评论 -
线程池总结以及相关面试问题总结
一、什么是线程池?有什么作用?二、常见的线程池以及使用场景三、线程池参数详解四、怎么计算线程池核心数的大小一般说来,大家认为线程池的大小经验值应该这样设置: (其中N为CPU的个数)如果是CPU密集型应用,则线程池大小设置为N+1如果是IO密集型应用,则线程池大小设置为2N+1五、线程池有哪几种工作队列...原创 2020-05-06 14:13:26 · 224 阅读 · 0 评论 -
synchronized和volatile关键字详解
synchronized一、synchronized可作用范围两种表现形式(方法层面和代码块层面)。两种作用范围(对象锁和类锁)1、public synchronized void demo1(){}2、public static synchronized void demo2(){}3、public void demo3(){synchronized(this){}}4、publ...原创 2020-05-06 10:44:17 · 224 阅读 · 0 评论 -
线程的生命周期
线程可以合理的利用多核心CPU资源,提高成勋的吞吐量。一、Java中如何使用线程1、实现Runnable接口2、继承Thread(本质是对Runnable接口的实现)3、实现Callable(带返回值的线程)4、实现Future(带返回值的线程)5、线程池二、线程的生命周期NEW在new Thread();阶段RUNNABLE 调用start();方法BLOCKED 当线...原创 2020-04-30 10:34:49 · 99 阅读 · 0 评论 -
java8的hashmap扩容机制
当put方法执行的时候,如果table为空,则执行resize();方法扩容。默认长度为16; if ((tab = table) == null || (n = tab.length) == 0) n = (tab = resize()).length;当table中存储值的个数大于等于threshold的时候,进行扩容。容量为原来的2倍。 if...原创 2020-04-09 14:58:50 · 3771 阅读 · 2 评论 -
HashMap中阈值的设计
HashMap中阈值的设计1.HashMap的长度为什么必须是2的次幂?2.加载因子为什么是0.75?3.处理冲突的几种方法4.equals()和hashCode()在HashMap中的重要性1.HashMap的长度为什么必须是2的次幂?为了实现一个尽量分布均匀的hash函数,利用的是Key值的HashCode来做某种运算。因此问题来了,如何进行计算,才能让这个hash函数尽量分布均匀呢?首...原创 2020-04-08 17:54:34 · 3151 阅读 · 0 评论 -
Java8源码分析HashMap的get和put
注释HashMap 存/取值put方法下面是图解,以便帮助读者更加直观的理解。put方法中用到的方法get方法get中用到的方法put方法/** * 将指定值与该映射中的指定键相关联。 * 如果map中key的值已经存在,则新的值会取代旧的值 */ public V put(K key, V value) { return putVal(h...原创 2020-04-08 16:25:56 · 167 阅读 · 0 评论 -
IO与NIO
Java的IO与NIO概念IO读操作写操作NIO准输入输出NIO读操作写操作边读边写网络编程NIO选择器服务端客户端代码测试概念NIO是jdk1.4之后引入的。IO是面向流(字符流、字节流)的。NIO是面向缓冲的。在Java API中提供了两套NIO,一套是针对标准输入输出NIO,另一套就是网络编程NIO。 参考大佬的详细总结下面主要是代码的实现IO读操作public static ...原创 2020-04-03 16:54:48 · 138 阅读 · 0 评论 -
内部类的种类和使用方式
四种内部类形式以及使用方法内部类的定义种类和使用成员内部类静态内部类局部内部类匿名内部类内部类的定义内部类是指在一个外部类的内部再定义一个类。内部类作为外部类的一个成员,并且依附于外部类而存在的。内部类主要有以下几类:成员内部类、局部内部类、静态内部类、匿名内部类种类和使用成员内部类作为外部类的一个成员存在,与外部类的属性、方法并列。public class Outer {...原创 2020-04-01 18:07:34 · 220 阅读 · 0 评论 -
类的实例化顺序
类的实例化顺序1:父类的静态变量2:父类的静态代码块3:子类静态变量4:子类的静态代码块5:父类非静态代码块6:父类构造函数7:子类非静态代码块8:子类构造方法测试public class Father { static { System.out.println("父类静态代码块----------"); } { System.out.println("父类非...原创 2020-03-31 16:12:56 · 348 阅读 · 0 评论 -
值传递和引用传递
1.值传递值传递,是对基本型变量而言的,传递的是该变量的一个副本,改变副本不影响原变量。public static void main(String[] args) { int a =1; changeInteger(a); System.out.println(a); }public static void changeInteger(int a) { a = 100;}...原创 2020-03-25 16:14:22 · 102 阅读 · 0 评论 -
抽象类的构造方法
1、抽象类的说明抽象类不能被实例化(也就是不能直接 new 抽象类()),如果被实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象。抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能。构造方法,类方法(用static修饰的方法)不能声明为抽象方法。抽象类的子...原创 2019-12-11 15:49:33 · 8002 阅读 · 0 评论 -
websockt统计在线人数
websocket支持持久连接,http协议不支持持久连接原创 2019-08-28 18:53:35 · 1337 阅读 · 0 评论