java
FenG·
这个作者很懒,什么都没留下…
展开
-
java 类初始化与this逃逸
前言想记录一下对类初始化的理解,并且this逃逸也与类初始化有关,所以放到一起了。原创 2019-10-28 23:47:18 · 317 阅读 · 1 评论 -
java 实现跳表
前言最近在网上看到redis为什么用跳表而不用平衡树,觉得好奇就看了一下。跳表的概念网上都有,这里就不赘述了。总的来说跳表相比于红黑树实现简单,并且支持范围查找。同时skiplist又无法归入哈希表、平衡树这两种用于查找的常见又高效的数据结构。所以动手实现了一个(主要是看到了实现简单)。代码/** * 此跳表用于有序存储节点并且查找指定权值节点的时间复杂度为O(logn) * * @...原创 2019-10-27 19:22:47 · 836 阅读 · 0 评论 -
jvm运行时数据区的理解
前言对于java学习来说,若是只会实现一些简单的CRUD肯定是不够的,想要理解和深入学习java肯定还是药理解一下底层实现,jvm的机制和原理是很好的学习内容,所以读了《深入理解java虚拟机》。读完后感觉还是不够,所以打算在写下笔记的时候巩固已学内容,和查漏补缺。1、jvm的运行时数据区域java的运行时数据区域:1.1、程序计数器记录正在执行的字节码指令地址。1.2、java虚...原创 2019-10-18 20:49:35 · 372 阅读 · 0 评论 -
java 线程的工作内存和ThreadLocal
前言这两者有什么关系吗,一个工作内存,一个ThreadLocal,为什么要合在一起讨论呢,因为工作内存是线程独享的,而ThreadLocal所保存的也是线程独自持有的对象。原创 2019-10-14 21:21:28 · 1418 阅读 · 3 评论 -
java的join和wait
看了一下Thread的源码,join()是通过wait()实现的,看起来是this.wait(),可为什么是调用的线程停下来等待了呢,首先tb.join() 是一个synchronized方法, 里面调用了wait(),这个过程的目的是让持有这个同步锁的线程进入等待,那么谁持有了这个同步锁呢?答案是主线程,因为主线程调用了tb.join()方法,相当于在tb.join()代码这块写了一个同步代码...原创 2019-10-06 21:39:47 · 362 阅读 · 0 评论 -
右移运算
前言关于移位运算只知道是二进制运算,会比加减乘除之类的快一些,但其实移位操作还有不少的小秘密。1、有符号右移 >>如果希望右移-1==0作为循环或者递归的终止条件,那你可能要死循环或者栈溢出了。下面说说为什么吧移位操作前-1原码:1000 0001反码:1111 1110补码:1111 1111右移一位(右移几位都一样)补码:1111 1111反码:1111 1...原创 2019-09-21 19:19:18 · 2006 阅读 · 0 评论 -
Hexoarticle
Hexoarticle1、简介hexoarticle 基于SpringBoot,提供在线写博客的页面。在使用hexo时写博客更方便。2、功能已完成功能对文章的写、编辑、删除。简易的界面计划中的功能更好看的界面4、安装1、下载代码git clone https://gitee.com/llqqff/hexoarticle.git2、进入根目录进行打包mvn pac...原创 2019-07-18 17:30:34 · 116 阅读 · 0 评论 -
java 隐藏邮箱和手机号
1、手机号phone = phone.replaceAll("(\\d{3})\\d{6}(\\d{2})", "$1******$2");//第一个参数是正则表达式,$1匹配第一个括号,$2匹配第二个2、邮箱email = email.getEmail().replaceAll("(\\w?)(\\w+)(\\w)(@\\w+\\.[a-z]+(\\.[a-z]+)?);...原创 2019-06-24 10:46:08 · 1086 阅读 · 0 评论 -
Response设置编码
1.response.setContentType(“text/html; charset=UTF-8”)不仅发送到浏览器的内容会使用UTF-8编码,而且还通知浏览器使用UTF-8编码方式进行显示。所以总能正常显示中文2.response.setCharacterEncoding(“UTF-8”)仅仅是发送的浏览器的内容是UTF-8编码的,置于浏览器是用哪种编码方式显示不管。 所以当浏览器的...原创 2019-06-08 00:01:29 · 2881 阅读 · 0 评论 -
java 线程的多种状态及方法的比较
线程的生命周期1、新建(new)新建一个线程对象。2、可执行状态(runnable)/就绪状态新建的Thread对象调用start后进入就绪状态。3、执行状态(running)已获取cpu的使用权,执行run方法。4、阻塞状态(blocked)由于某些原因该线程放弃了cpu的使用权。停止执行。除非线程进入可运行的状态,才会有机会获取cpu的使用权。1. 等待阻塞:运行中的线程执行...原创 2019-05-11 13:07:52 · 97 阅读 · 0 评论 -
java 泛型
1、何为泛型?泛型的本质便是类型参数化,通俗的说就是用一个变量来表示类型,这个类型只能是引用类型,表明可接受的类型。2、为什么使用泛型?Java 语言中引入泛型是一个较大的功能增强。不仅语言、类型系统和编译器有了较大的变化,以支持泛型,而且类库也进行了大翻修,所以许多重要的类,比如集合框架,都已经成为泛型化的了。这带来了很多好处:1、 类型安全。 泛型的主要目标是提高 Java 程序的类型...原创 2019-05-10 18:15:38 · 66 阅读 · 0 评论 -
java多态
1、多态多态是同一个行为具有多个不同表现形式或形态的能力。 多态就是同一个接口,使用不同的实例而执行不同操作多态存在的三个必要条件:继承、重写、父类引用指向子类对象。多态的体现:重写、接口、抽象类和抽象方法多态性语言具有灵活,抽象,行为共享,代码共享的优势,很好的解决了应用程序函数同名问题。2、方法解析类从被载到虚拟机内存,到卸载出内存为止,整个生命周期如上图。那有些...原创 2019-05-09 21:51:28 · 128 阅读 · 0 评论 -
java enum的理解
原文:https://blog.csdn.net/zhoufanyang_china/article/details/86707727项目中如果要定义组变量,你可能会这样定义: //redis的key常量定义 public static final String KEY_PRE = "api-key"; //前缀 public static final String K...转载 2019-05-09 19:09:03 · 995 阅读 · 0 评论 -
java instanceof 关键字
instanceof关键字java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。用法boolean result = object instanceof class在编译期object必须是引用类型,并且是class或其父类、子类的实例而运行期object不为...原创 2019-05-09 13:34:07 · 90 阅读 · 0 评论 -
java实现AOP
1、什么是AOP?AOP(Aspect Oriented Programming)是面向切面编程。根据我的理解,AOP就是基于一个主体,扩展一些功能,且不需要改动原来的代码。使程序更加灵活。AOP的原理就是代理模式。2、什么是代理模式?代理模式就是通过代理,控制对对象的访问。它的设计思路是: 定义一个抽象角色,使代理角色和真实角色分别去实现它。真实角色:实现抽象角色,定义业务逻辑,供代...原创 2019-05-04 21:27:42 · 504 阅读 · 1 评论