J2SE
文章平均质量分 93
扶我起来我还要写代码
经世致用
展开
-
密钥协商算法Diffie-Hellman的Java实现
本文的思路是这样的:先了解Diffie-Hellman的流程原理,然后将其流程和Java的实现对应起来;理解了原理和Java实现的流程,再写应用代码进一步辅助验证,最后走一走源码流程中的相关细节,做最终验证;最后,再了解一下性能更好、安全性更高的ECDH(基于椭圆曲线来实现的Diffie-Hellman)原创 2022-03-03 22:37:15 · 4372 阅读 · 4 评论 -
PBE的随笔
PBE随笔原创 2022-02-17 11:24:41 · 3754 阅读 · 0 评论 -
Password-Based Encryption (PBE)
Password-Based Encryption (PBE)转载 2022-02-15 15:18:09 · 335 阅读 · 0 评论 -
java DES
目录概述 分组密码的模式 DES的Java代码 无模式 CTR模式示例 一、概述Java安全领域主要由JCA、JCE、JSSE、JAAS组成。其中JCA和JCE在jdk1.4中已经合并了,所以在后续的JDK版本中,摘要和常见的加密算法(例如DES)都可以在JDK中直接使用,主要是两个package——java.security和javax.crypto。引用:Java Cryptography Architecture (JCA) Reference Guide (oracle原创 2022-02-08 18:18:32 · 512 阅读 · 2 评论 -
Efficient data transfer through zero copy
Many Web applications serve a significant amount of static content, which amounts to reading data off of a disk and writing the exact same data back to the response socket. This activity might appear to require relatively little CPU activity, but it’s some转载 2022-01-05 21:53:09 · 155 阅读 · 1 评论 -
【J2SE】hotspot中如何实现Object.hashCode
openjdk15中,Object.hashCode()方法实现的源码分析原创 2021-07-18 18:32:50 · 566 阅读 · 2 评论 -
【随笔】lambda基础
面向过程是抽象解题步骤;面向对象是抽象问题域中的实体;函数式编程是将行为参数化。行为参数化的含义是一段可以传递的代码。lambda基础有三个点:函数式接口 lambda表达式 方法的引用函数式接口@FunctionnalInterface只包含一个抽象方法的接口就叫做函数式接口。FunctionalInterface (Java SE 15 & JDK 15) (oracle.com)Conceptually, a functional interface h原创 2021-07-06 00:26:59 · 182 阅读 · 0 评论 -
【annotation】directly present, indirectly present, present, and associated
一、directly present, indirectly present, present, and associatedAPI documentation:AnnotatedElement (Java SE 15 & JDK 15) (oracle.com)The termsdirectly present,indirectly present,present, andassociatedare used throughout this interface to descri...原创 2021-05-10 18:38:22 · 482 阅读 · 0 评论 -
【J2SE】JDK动态代理
一、查看生成的代理默认生成的代理类的class文件是不会持久化落盘的,所以你想通过javap、JD-GUI这些工具查看字节码或反编译是看不到的。你需要在动态代理运行的JVM的进程中设置一个环境变量,让其落盘持久化。JDK8及以前:/*设置此系统属性,让JVM生成的Proxy类写入文件。保存路径为:项目文件系统目录下com/sun/proxy文件夹中*/System.getProperties().put("sun.misc.ProxyGenerator.saveGeneratedFi...原创 2021-04-07 23:42:39 · 422 阅读 · 2 评论 -
【J2SE】多了解一些异常,多写出一些正常
1.Java异常的基础知识;2.jvm异常处理:catch和throws,对应方法Code属性中的异常表Exception table和方法的Exceptions属性;3.如果异常没有被处理,那么走兜底的未捕获异常流程4.异常和return:得出的结果是一定不要在finally中写return代码,因为会导致异常信息被吞掉!5.异常表在JVM中的妙用:为什么finally一定会被执行;为什么就算异常还是会释放锁原创 2021-03-15 23:19:08 · 847 阅读 · 3 评论 -
【随笔】Java8接口中的静态方法和默认方法
零、继承中同名方法的问题Java中类是单继承,如果子类和父类出现同名方法,该方法要么满足重载规则,要么满足重写规则,否则子类继承报错; Java中接口允许多继承,如果不同的父接口中出现同名方法,这些方法要么满足重载规则,要么满足重写规则,否则子接口继承报错、子类因无法实现该同名方法报错;如下例所示,子类实现两个接口时因show方法无法满足重写规则中小于等于的返回值类型而报错(相同的方法名和参数列表、大于等于的访问权限、小于等于的返回值类型和抛出异常类型),因为返回值类型void和int没有共同的子类原创 2021-03-09 20:49:12 · 511 阅读 · 1 评论 -
【随笔】switch字节码指令
一、引子不管是什么编程语言,不管你是前缀表达式的语法树机器,还是后缀表达式的栈机器,基本上都是这么三类程序流程控制结构:顺序、选择和分支。而分支结构的两大巨头if和switch,这TM都是老熟人了。以前刚开始学Java的时候,switch的case中不写break,后面的不会再判断case的条件,只要没有break,他就一通执行到底,当时比较稚嫩学语法记现象然后死记硬背,知其然不知其所以然。只是没写break,怎么后面的case条件也不匹配,怎么就刷刷刷往下跑呢?看个例子先。 /**原创 2021-03-08 15:08:11 · 900 阅读 · 1 评论 -
【随笔】Thread从java到jvm
Thread从java到jvmjdk/src/share/native/java/lang/Thread.chotspot/src/share/vm/prims/jvm.cpp中JVM_ENTRY(void, JVM_StartThread(JNIEnv* env, jobject jthread))blob/jdk/jdk/src/hotspot/share/runtime/thread.cppblob/jdk8u/jdk8u/hotspot/src/os/linux/vm/o原创 2020-09-03 08:51:49 · 216 阅读 · 0 评论 -
【并发编程】java.lang.Thread.UncaughtExceptionHandler
java.lang.Thread.UncaughtExceptionHandler原创 2016-04-16 14:15:06 · 3394 阅读 · 0 评论 -
【并发编程】CPU流水线的探秘之旅
CPU流水和流水线科普文章,隶属程序猿的内功修为转载 2016-04-25 13:35:08 · 1606 阅读 · 0 评论 -
【并发编程】CPU cache结构和缓存一致性(MESI协议)
一、cache cpu cache已经发展到了三级缓存结构,基本上现在买的个人电脑都是L3结构。1. cache的意义 为什么需要CPU cache?因为CPU的频率太快了,快到主存跟不上,这样在处理器时钟周期内,CPU常常需要等待主存,浪费资源。所以cache的出现,是为了缓解CPU和内存之间速度的不匹配问题(结构:cpu -> cache -> memory...原创 2016-01-03 06:29:21 · 21654 阅读 · 19 评论 -
【JVM】异常和return
package exception;/** * 1. 当只有try块中有return且能正常返回的时候,return的value被存放到局部变量表中,然后执行完finally之后才返回; * 2. 当try和finally中都有return的时候,try块中的return会被优化掉,只会返回finally中; * 3. 当try和catch中都有return的时候,异常返回catch原创 2016-04-15 16:44:44 · 1355 阅读 · 0 评论 -
【java】java BIO
一、文件二、流三、输入输出体系原创 2014-10-15 14:01:23 · 2000 阅读 · 0 评论 -
【并发编程】Java中断机制——协作式中断含义及应用
本文试图对以下内容进行阐述和说明: 1. Java中断是协作式中断,“协作式中断”的含义; 2. Java中断并不是立即响应,那么线程什么时候中断?又在什么时候响应中断?如何响应中断?原创 2015-11-19 04:20:11 · 2514 阅读 · 1 评论 -
HashMap defaultLoadFactor = 0.75和泊松分布没有关系
很多人说HashMap的DEFAULT_LOAD_FACTOR = 0.75f是因为这样做满足泊松分布,这就是典型的半知半解、误人子弟、以其昏昏使人昭昭。实际上设置默认load factor为0.75和泊松分布没有关系,随机哈希的存放数据方式本身就是满足泊松分布的。java8及以上版本中开头这一段的注释,是为了解释在java8 HashMap中引入Tree Bin(也就是放数据的每个数组bin...原创 2018-10-07 18:38:49 · 12421 阅读 · 33 评论 -
【集腋成裘】类型判断(instanceof、isInstance、isAssignableFrom、equals)
obj instanceof 类型class.isInstance(Object obj)class.isAssingableFrom(Class<?> clazz)原创 2015-08-02 09:20:00 · 2566 阅读 · 0 评论 -
【JVM】方法字节码signature和descriptor的区别
方法字节码signature和descriptor的区别原创 2016-04-15 18:20:33 · 5342 阅读 · 0 评论 -
【java】正则表达式基础
一、正则表达式二、使用正则原创 2014-10-15 14:46:59 · 920 阅读 · 0 评论 -
【IO】getResourceAsStream小记
java.lang.Class.getResourceAsStream和java.lang.ClassLoader.getResourceAsStream原创 2016-08-02 17:33:04 · 834 阅读 · 0 评论 -
spring事务声明的几种传播特性
原文链接:点击打开链接 (http://dorishy.iteye.com/blog/2108236?utm_source=tuicool)最近遇到了一个spring事务导致的问题,所以写了几个小程序了解了一下事务的传播特性,下面分别举例子分别看看事务的传播特性。事务的几种传播特性1. PROPAGATION_REQUIRED: 如果存在一个事务,则转载 2015-04-12 17:51:32 · 3555 阅读 · 1 评论 -
【mybatis】不靠谱程序员之mysql环境下mybatis数据源驱动重复加载
mybatis在tomcat环境下会产生驱动重复加载空耗性能原创 2015-05-06 16:10:46 · 2388 阅读 · 0 评论 -
【java】java.awt基础(简易记事本代码)
一、java.awt包二、组件三、侦听器四、简易记事本原创 2014-10-07 10:05:03 · 1350 阅读 · 0 评论 -
JVM DNS IP地址缓存(InetAddress)
JVM DNS IP地址缓存策略及修改,附送《DNS Caching in Java Virtual Machines》pdf文档原创 2016-01-01 17:20:52 · 6073 阅读 · 0 评论 -
【J2SE】为什么静态内部类的单例可以实现延迟加载
一、单例单例是一个常见的设计模式,常见有四种方式来实现,即懒汉式、饿汉式、枚举和静态内部类实现,这个模式的本质是为了控制内存中某个类的实例数量。懒汉式采用懒加载,时间换空间,因此需要注意获取实例时的并发安全问题,即便正确并发,每次获取实例的时候还是要浪费一次判断; 饿汉式空间换时间,在定义单例对象时就完成实例化,因为JVM在初始化一个类的时候(即调用类构造函数<clinit>...原创 2016-10-20 19:21:17 · 7811 阅读 · 13 评论 -
java对象的对齐规则
零、注记本文是一次讨论的流水账,旨在讲明原理就行了,行文大家不要抱太大的希望。另外,特别重要的是,本文是基于hotspot来讨论的,不同的java虚拟机是有不同的,这一点,一定要注意。一、什么是对象的内存布局简单一句话:对象实例在jvm堆内存中存放的结构。就是随便实例化一个对象new Object(),他在堆内存里面是怎么放置的。看下面这个jol工具给出的java.mat...原创 2019-09-22 18:57:17 · 4830 阅读 · 0 评论 -
【java】面向对象(类、抽象类、接口
一、类二、抽象类三、接口原创 2014-10-12 16:41:44 · 660 阅读 · 0 评论 -
【Spring MVC】Spring MVC启动过程源码分析
Spring MVC启动时,Spring容器和Spring MVC组件的启动过程源码分析原创 2015-09-04 18:50:20 · 4073 阅读 · 1 评论 -
【J2SE】这才是java虚引用(PhantomReference)
一、java.lang.ref java.lang.ref包规范(参看JDK API中所述内容,本文就不贴出来了)有几个点很重要。 1. 这个包中的类使得应用程序可以与JVM垃圾收集器进行一些交互; 2. 引用的可达性逐渐降低:强引用、弱引用、软引用、虚引用; 3. 自动清除引用:只有弱引用和软引用会自动清除引用(这表明虚引用不会自动清除),清除的时机是将引原创 2015-08-15 19:14:51 · 3510 阅读 · 1 评论 -
【java】泛型
一、泛型概述 泛型是JDK1.5以后出现的特性,为了解决元素存入集合时“编译时不检查类型异常”和元素存入集合后“丢失对象信息”,这将导致在使用集合的时候不得不靠人力来保证存入元素的信息,使得程序臃肿效率低下。 泛型:(Generic type或Generics)是对java语言的类型系统的一种个扩展,可以支持创建按照类型进行参数化的类,可以把类型参数看作是使用参原创 2014-10-17 12:26:34 · 693 阅读 · 0 评论 -
【java】枚举类
一、枚举类简介 java 5新增了一个关键“enum",enum与class、interface等关键字的地位相同,他表示一种新的自定义数据类型——枚举类型。我们知道java中所有的类都有一个共同的基类java.lang.Object,但是被定义成枚举类的类并不继承java.lang.Object,而是继承了java.lang.Enum类,java开发文档中明确指出java.la原创 2014-10-14 15:35:15 · 843 阅读 · 0 评论 -
静态链接与动态链接的区别
原文链接:点击打开链接(http://www.cnblogs.com/kex1n/archive/2011/09/06/2168435.html)动态链接库、静态库、import库区别动态链接库(Dynamic Linked Library):Windows为应用程序提供了丰富的函数调用,这些函数调用都包含在动态链接库中。其中有3个最重要的DLL,Kernel32.dll,它包转载 2015-03-18 00:51:13 · 976 阅读 · 0 评论 -
【java】序列化
一、什么、为什么1. 序列化的本质(什么) 序列化的目的是持久化一个对象的状态。 a. 状态:当new一个对象的时候,该对象叫做张三,男,24岁(属性name="张三", gender="male", age=24),这些property和对应的value就是一个对象的状态; 补充: 方法本身没有状态,因原创 2015-03-27 11:43:09 · 838 阅读 · 0 评论 -
【java】继承和super.getClass()
一、先看问题question:输出的结果是什么?package cn.wxy.extendsion;/** * 父类 * @author reliveIT */public class Father {}package cn.wxy.extendsion;/** * 子类 * @author reliveIT */public class Son extends原创 2015-03-20 23:16:51 · 1050 阅读 · 0 评论 -
【java】java.util.BufferedInputStream
一、补遗点二、源码分析原创 2014-11-24 20:59:09 · 875 阅读 · 0 评论 -
【java】面向对象(三大特性)
一、面向对象思想原创 2014-10-12 16:41:47 · 1002 阅读 · 0 评论