java
-星星-
千万不要在正确的时间干错误的事情,与君共勉!!!
展开
-
Java源码阅读------Reference
https://blog.csdn.net/sinat_36945592/article/details/87099185转载 2020-01-16 17:59:44 · 194 阅读 · 0 评论 -
OOM killer机制讲解
一、Linux内核OOM killer机制Linux 内核有个机制叫OOM killer(Out Of Memory killer),该机制会监控那些占用内存过大,尤其是瞬间占用内存很快的进程,然后防止内存耗尽而自动把该进程杀掉。内核检测到系统内存不足、挑选并杀掉某个进程的过程可以参考内核源代码linux/mm/oom_kill.c,当系统内存不足的时候,out_of_memory()被触发,...原创 2019-12-27 10:35:33 · 2082 阅读 · 0 评论 -
Java Web 项目目录规范
一、项目结构这里和其他项目区别不大,我将模板抽离出来,更容易分析和理解:解释一下:js主要包括extends(引入第三方的js)、module(项目模块自己的js)、lib(引用包,这里也可以继续拆分),module中包含具体的模块中的js。common.js是核心命名空间的js.二、common.js解释一下,Globals作为全局命名空间,各个模块均可以在此命名空间里定...转载 2019-04-01 21:29:06 · 330 阅读 · 0 评论 -
设计模式-代理模式(jdk代理和cglib代理详解)
说起代理模式,相信很多人早已经很理解,但对于我这个菜鸟,理解的可能还是不到位,写一次博客加深印象。什么是代理模式呢?代理模式是常用的Java设计模式,它的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类和委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不是真正实现服务,而是通...转载 2019-04-17 14:39:55 · 188 阅读 · 0 评论 -
Java并发之AQS详解
一、概述 谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)! 类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常用的ReentrantLock/Semaphore/CountDownLatch...。 以下是本文的目录大...转载 2019-05-17 13:41:21 · 91 阅读 · 0 评论 -
String.intern()详细分析,JDK1.8
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013366617/article/details/83618361 </div> <link rel="stylesheet" href="http...转载 2019-05-13 16:04:42 · 303 阅读 · 0 评论 -
Java动态代理机制详解(JDK 和CGLIB,Javassist,ASM)
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010349169/article/details/24589193class文件简介及加载Java编译器编译好Java文件之后,产生.class 文件在磁盘中。这种class文件是二进制文件,内容是只有JVM虚拟机能够识别的机器码。JVM虚拟机读取字节码文件,取出二进制数据,加载到内...转载 2019-06-03 15:19:01 · 116 阅读 · 0 评论 -
ConcurrentHashMap源码分析(1.8)
HashMap 是我们日常最常见的一种容器,它以键值对的形式完成对数据的存储,但众所周知,它在高并发的情境下是不安全的。尤其是在 jdk 1.8 之前,rehash 的过程中采用头插法转移结点,高并发下,多个线程同时操作一条链表将直接导致闭链,死循环并占满 CPU。当然,jdk 1.8 以来,对 HashMap 的内部进行了很大的改进,采用数组+链表+红黑树来进行数据的存储。rehash 的过...转载 2019-07-10 11:01:53 · 104 阅读 · 0 评论 -
java bio nio aio
流程图:技术:BIO,NIO,AIO说明:github上有更全的源码。源码:https://github.com/ITDragonBlog/daydayup/tree/master/Netty/socket-ioBIOBIO 全称Block-IO 是一种阻塞同步的通信模式。我们常说的Stock IO 一般指的是BIO。是一个比较传统的通信方式,模式简单,使用方便。但并发处理能力低,...转载 2018-09-24 19:18:04 · 214 阅读 · 0 评论 -
领导者-追随者模式
领导者-追随者模型介绍这几天翻了些文章,发现对领导者/追随者模型说的比较少,下面就这个模型打个比方:1.话说一个地方有一群有组织无纪律的人从事山贼这个很有前途的职业。2.一般就是有一个山贼在山路口察看,其他人在林子里面睡觉。3.假如发现有落单的过往客商,望风的山贼就会弄醒一个睡觉的山贼,然后自己去打劫。4.醒来的山贼接替作望风的事情。5.打劫的山贼搞定以后,就会去睡觉,直到...转载 2018-09-03 11:30:53 · 1202 阅读 · 0 评论 -
Java 8 Lambda 捕获外部变量 -- 不可变的原因
source:http://www.th7.cn/Program/java/201512/720446.shtml是因为,lambda表达式是在另一个线程中执行。可能会把捕获外部变量的 Lambda 表达式称为闭包,那么 Java 8 的 Lambda 可以捕获什么变量呢?捕获实例或静态变量是没有限制的(可认为是通过 final 类型的局部变量 this 来引用前两者) 捕获的局部变量必须显式的声...转载 2018-06-29 14:49:47 · 4896 阅读 · 2 评论 -
shiro拦截器
Shiro的Filter拦截器这时候需要扩展一下Shiro的Filter,主要有AdviceFilter、RolesAuthorizationFilter、PermissionsAuthorizationFilterAdviceFilter有点类似SpringMVC中的HandlerInterceptor拦截器,主要用于在访问Controller之前用于判断用户是否登录RolesAuthoriza...原创 2018-06-25 14:57:03 · 921 阅读 · 0 评论 -
AVL树
保持平衡策略:保持平衡因子(树任意节点的深度)不能相差2。左旋转: 右旋转右旋左旋左旋右旋java实现AVLNode root;public void add(String key){ root=insertAVLNode(root,key);}public void remove(String key){ root=removeAVLNode(root,key);...原创 2018-06-26 18:20:49 · 124 阅读 · 0 评论 -
java 增强型for循环
1、必须继承AbstractSet抽象类 并重写iterator和size方法2、循环是使用iterator方法返回的迭代器3、迭代器实现iterator接口 并重写hasNext和next方法/** * @author star * @since 6/27/2018 3:51 PM */public class IteratorTest extends AbstractSet<St...原创 2018-06-27 16:35:11 · 257 阅读 · 0 评论 -
ServiceLoader实现原理
在java中根据一个子类获取其父类或接口信息非常方便,但是根据一个接口获取该接口的所有实现类却没那么容易。有一种比较笨的办法就是扫描classpath所有的class与jar包中的class,然后用ClassLoader加载进来,然后再判断是否是给定接口的子类。但是很显然,不会使用这种方法,代价太大。java本身也提供了一种方式来获取一个接口的子类,那就是使用java.util.Ser...转载 2018-07-06 17:43:45 · 179 阅读 · 0 评论 -
Spring 获取注入类中实现 某个 接口的类
@Controllerpublic class TestController { @Autowired private WebApplicationContext webApplicationContext; @RequestMapping("/index") public String index(){ //根据接口类型返回相应的所有bean...原创 2018-07-06 18:00:37 · 1994 阅读 · 0 评论 -
C语言指针详解
前言这不是我第一次写关于C指针的文章了,只是因为指针对于C来说太重要,而且随着自己编程经历越多,对指针的理解越多,因此有了本文。然而,想要全面理解指针,除了要对C语言有熟练的掌握外,还要有计算机硬件以及操作系统等方方面面的基本知识。所以我想通过一篇文章来尽可能的讲解指针,以对得起这个文章的标题吧。 为什么需要指针?指针解决了一些编程中基本的问题。第一,指针的使用使得不同区域的代码可以轻易的共享内存...转载 2018-07-13 13:45:15 · 12776 阅读 · 6 评论 -
Java中 VO、 PO、DO、DTO、 BO、 QO、DAO、POJO的概念
PO(persistant object) 持久对象在 o/r 映射的时候出现的概念,如果没有 o/r 映射,没有这个概念存在了。通常对应数据模型 ( 数据库 ), 本身还有部分业务逻辑的处理。可以看成是与数据库中的表相映射的 java 对象。最简单的 PO 就是对应数据库中某个表中的一条记录,多个记录可以用 PO 的集合。 PO 中应该不包含任何对数据库的操作。DO(Domain Obj...转载 2018-08-20 17:51:16 · 186 阅读 · 0 评论 -
Java泛型 extends 和 super 的区别
泛型中<? extends T>和<? super T> 差别<? extends T>和<? super T>含有JAVA5.0的新的概念。由于它们的外表导致了很多人误解了它们的用途:1.<? extends T>首先你很容易误解它为继承于T的所有类的集合,这是大错特错的,相信能看下去你一定见过或用过List<? ex...转载 2018-08-21 18:53:11 · 1500 阅读 · 0 评论 -
java lambda表达式
lambda表达式详解一.问题1.什么是lambda表达式? 2.lambda表达式用来干什么的? 3.lambda表达式的优缺点? 4.lambda表达式的使用场景? 5.lambda只是一个语法糖吗?二.概念lambda表达式是JAVA8中提供的一种新的特性,它支持JAVA也能进行简单的“函数式编程”。 它是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽...转载 2018-06-22 14:57:49 · 158 阅读 · 0 评论