- 博客(24)
- 收藏
- 关注
原创 CountDownLanch 深度解析
CountDownLatch 深度解析涉及到到函数public CountDownLatch(int count) { if (count < 0) throw new IllegalArgumentException("count < 0"); this.sync = new Sync(count);}private static final...
2019-04-01 15:29:02
927
原创 深坑——Linux下安装go时自带go引发的环境变量未生效问题
深坑——Linux下安装go时自带go引发的环境变量未生效问题!!产生原因由于Linux14.04 自带的go的软连接在/usr/bin/go,这个go软连(自行百度)接将会在连接到/usr/bin/golang-go的地址,然后继续进行连接。。。然后又因为环境变量生效优先级的问题(自行百度,如有好的文章请在下方留言,先感谢
2019-04-01 10:17:50
2809
1
原创 来聊聊线程池
线程池可以说是在Java代码中非常常见的技术了,利用线程池技术可以有效的提高系统资源的使用效率,本文将从线程池的类型分类、创建线程池参数、各种类型线程池的使用场景、优秀的设计思路等 Executor 为基础接口,设计初衷是将任务提交和任务执行细节解耦 ExecutorService 则更加完善,不仅提供了service管理功能,也提供了更加全面的提交任务机制 Executors 提供了各...
2018-08-16 12:30:58
327
原创 聊聊Java中的并发队列
本文主要总体的说一说各种并发队列 首先来一张全体照 从有界无界上分 常见的有界队列为ArrayBlockingQueue 基于数组实现的阻塞队列LinkedBlockingQueue 其实也是有界队列,但是不设置大小时就时Integer.MAX_VALUE,内部是基于链表实现的ArrayBlockingQueue 与 LinkedBlockingQueue 对比一哈 Arr...
2018-08-15 21:48:18
1761
原创 Java面试——JVM(2)
1、程序计数器(线程私有)线程执行字节码的行号指示器(注意是字节码,本地方法计数器为空的)2、Java虚拟机栈(线程私有):描述的是Java方法执行的内存模型每一个方法对应一个栈帧栈帧包含:局部变量表、操作数栈、动态链接、方法出口局部变量表slot会复用,导致一些对象不能被及时的回收,所以建议对象不用之后要赋值为空;局部变量表在编译器就已经完成分配方法的返回地址即方法出...
2018-08-14 18:04:59
260
原创 Java面试——JVM(1)
Java的类加载过程 加载过程 类的二进制流 –> 运行时数据结构 –> 生成一个Class对象作为这个类各种数据的访问入口验证 确保Class文件符合虚拟机要求准备 为类变量分配内存空间,设置零值解析阶段 将常量池中的符号引用替换为直接引用的过程符号引用 通俗的说可以认为是类的全路径直接引用 可以是指针、相对偏移量、句柄等可以定位到目标的量初始化 执...
2018-08-14 17:36:37
255
原创 Java web面试总结
状态码:206 客户发送了一个带有Range头的GET请求,服务器完成了它301 永久性转移302 临时性转移400 请求格式错误401 被请求的页面需要用户名和密码403 对被请求页面的访问被禁止405 请求中指定的方法不被允许500 服务器端错误request和response区别request 网址栏不会变,属于内部跳转response 网址栏会变,会让服务...
2018-08-14 16:07:32
249
原创 Java 基础知识面试题
深克隆和浅克隆的区别?浅克隆是两个完全相同的对象(包含普通对象和数组对象)指向了同一片内存区域深克隆是两个完全相同的对象(包含普通对象和数组对象)指向了不同的内存区域深克隆方法?申请一片新的内存区域,然后将对象拷贝到新的内存区域中== 和 equal 的区别?没有重载equal方法时,equal和== 是等价的,都是比较内存地址是否相同;重载equal方法后,如 ...
2018-08-14 12:01:35
328
转载 java 8 HashMap的resize()方法扩容部分 【转载深度好文】
原文链接 https://blog.youkuaiyun.com/u013494765/article/details/77837338没有别的说的,程序员直接看代码。红黑树比较麻烦,直接删除了。// 扩容兼初始化 final Node<K, V>[] resize() { Node<K, V>[] oldTab = table; ...
2018-08-02 13:41:52
349
转载 【转】 命令模式
原文链接:http://baijiahao.baidu.com/s?id=1587032070903401093&wfr=spider&for=pc命令模式(Command Pattern)将一个请求封装为一个对象,可让请求变得灵活(请求对象参数化),同时将请求者和请求接收者解耦。比如,A对象想调用B对象的某个方法,那么A对象必然需要依赖B对象;使用命令模式的话就类似抽取出一个公共...
2018-05-19 12:59:11
230
转载 CompletionService 介绍
原文链接:https://blog.youkuaiyun.com/u011116672/article/details/51113769CompletionService简介CompletionService与ExecutorService类似都可以用来执行线程池的任务,ExecutorService继承了Executor接口,而CompletionService则是一个接口,那么为什么CompletionS...
2018-05-17 17:57:08
247
转载 【转】简单的protobuf和protostuff
原文链接:https://blog.youkuaiyun.com/eric520zenobia/article/details/53766571在我们的开发过程中,序列化是经常需要处理的问题,比如在做分布式访问数据时,或者是在做redis缓存存储数据时,如果我们涉及的知识面不够广的话,可能会简单的使用JDK的序列化,也即在需要序列化的类上implements Serializable接口去实现序列化,我想说的...
2018-05-17 17:46:44
744
转载 【转】Tomcat 系统架构与设计模式
原文链接 https://www.ibm.com/developerworks/cn/java/j-lo-tomcat1/工作原理 ...
2018-05-14 14:13:57
241
转载 【转】Java8 resize() 机制
HashMap的扩容机制---resize()虽然在hashmap的原理里面有这段,但是这个单独拿出来讲rehash或者resize()也是极好的。什么时候扩容:当向容器添加元素的时候,会判断当前容器的元素个数,如果大于等于阈值(知道这个阈字怎么念吗?不念fa值,念yu值四声)---即当前数组的长度乘以加载因子的值的时候,就要自动扩容啦。扩容(resize)就是重新计算容量,向HashMap对象里...
2018-05-13 18:37:12
3992
2
转载 lambda表达式案例
Java 8十个lambda表达式案例转发自 http://www.jdon.com/idea/java/10-example-of-lambda-expressions-in-java8.html使用() -> {} 替代匿名类: 1. 实现Runnable线程案例//Before Java 8:new Thread(new Runnable() { @Override ...
2018-04-24 17:49:58
265
转载 java 如何将数据写入XML中
java中用jdom 如何创建xml文档/将数据写入XML中转载自 https://blog.youkuaiyun.com/zjliwhf/article/details/53536812----------------------------------------------------------------------------------------------------------------...
2018-04-24 11:23:14
4743
2
原创 从B树谈到数据库的索引实现原理
B树(B-tree):具有以下性质:m代表阶数 1、根结点:至少有两个子女 2、非根结点包含的关键字个数为 m/2-1 <= j <= m-1(3: 1<=j<=2) 3、除根以外的内部结点个数 m/2 <= k <= m; 4、根结点在同层 5、每个节点的关键字都是有序的B+树与B树的区别在于: 1、每个非叶结点都不保存数据...
2018-03-02 13:55:47
417
原创 Java面试题一
什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?Java虚拟机是一个可以执行Java字节码的虚拟机进程Java虚拟机知道底层硬件平台的指令长度和其他特性JDK和JRE的区别是什么?JDK(Java Development Kit) Java的开发工具--编译器、调试器、其他工具JRE(Java Runtime Environment) Java运行时环境,包含虚拟机”st...
2018-03-02 11:01:45
295
转载 ConcurrentHashMap的前世今生
引言:首先需要了解的是内置锁和显示锁内置锁也叫对象锁,关键字为 synchronized显示锁就是Lock及其子类线程不安全的HashMap数据结构 由哈希表实现,数据结构构成为数组+链表+红黑树,解决哈希冲突的方案为拉链法寻址方式 通过Integer.highestOneBit算出比指定整数小的最大的2^N值,其实现方法如下。public static int highestOneB...
2018-03-01 20:46:10
372
原创 Jav8 HashMap-putVal() 方法分析
带中文注释的源码解析putVal() 方法解析final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { Node<K,V>[] tab; Node<K,V> p; int n, i; // 如果存储元素的tab...
2018-03-01 16:42:07
8346
2
原创 Java8 线程池解析
1、线程池引入原因: 在Java中通过线程池复用线程2、线程池类图: 3、线程池核心类介绍: 3.1 在ThreadPoolExecutor类中提供了四个构造方法:public class ThreadPoolExecutor extends AbstractExecutorService {.....public ThreadPoolExecutor(int c...
2018-03-01 13:41:42
1551
原创 Fork/Join 设计解析
介绍:Fork/Join并行是获得良好的并行性能的最简单高效的设计技术。他是分治(Divide-and-Conquer)算法的的并行实现,它的典型应用形式:Result solve(Problem problem) { if (problem is small) directly solve problem else { split problem into independent p...
2018-02-27 21:32:39
648
2
原创 ssm 接收ajax请求数据,并存放到数据库中
前端页面function subbtn() { $.ajax({ url: "/bdis", // 请求的URL type: "POST", // 请求方式 dataType: 'json', // 数据格式为json data:{ // 发送请求的json 数据 为键值
2017-11-07 23:08:05
2987
原创 ssm 处理静态资源完美方案
首先在 dispatcherServlet-servlet.xml (即前端控制器) 做如下配置: <!--两个标准配置 --> <!-- 能支持springmvc更高级的一些功能,JSR303校验,快捷的ajax...映射动态请求 --> <mvc:annotation-driven/> <!-- 将springmvc不能处理的请求交给tomcat --> <
2017-11-01 17:57:01
4255
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人