
java基础
happyzhang0502
这个作者很懒,什么都没留下…
展开
-
java使用递归解决全排列问题
import java.util.Arrays;import java.util.HashSet;import java.util.LinkedList;import java.util.List;/* * 字符串全排列问题递归解决 */public class Test7_1 { public static void main(String[] args) { String原创 2013-09-19 11:38:47 · 1014 阅读 · 0 评论 -
高效并发 第一节:java内存模型(JVM笔记)
高效并发 第一节:java内存模型(JVM笔记) java虚拟机规范试图定义一种java内存模型(JMM)来屏蔽掉各种硬件和操作系统的内存访问差异,让java程序在各平台都能达到一致性的内存访问效果。主内存与工作内存 java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。 这里所说的变量包括实例字段静态字段构成数组原创 2018-04-25 00:32:00 · 379 阅读 · 0 评论 -
虚拟机类加载机制 第二节:类加载器(JVM笔记)
类与类加载器 对于任意一个类都要由加载他的类加载器和这类本身一同确定其在java虚拟机中的唯一性。也就是说比较两个类是否相等,只有在这两个类是由同一个类加载器加载的前提下才有意义,否则即使这两个类是来源于同一个Class文件,只要加载他的加载器不同,这两个类就必定不相等。双亲委派模型 站在JVM的角度讲只有两种不同的类加载器:启动类加载器,这个类加载器使用C++语言实现,虚拟机自身的一部分原创 2018-04-23 23:32:30 · 226 阅读 · 0 评论 -
虚拟机类加载机制 第二节:类加载的过程(JVM笔记)
加载 加载阶段是类加载的过程的一个阶段,在加载阶段虚拟机需要完成三件事:通过一个类的全限定名来获取定义此类的二进制字节流将字节流所代表的静态存储结构转化为方法区的运行时存储结构java堆中生成一个代表这个类的java.lang.Class对象,作为方法区这些数据的访问入口 加载完成后外部的二进制字节流就按照虚拟机所需的格式存储在方法区,方法区中的数据存储格式由虚拟机自行定义。验证 虚原创 2018-04-23 00:41:46 · 278 阅读 · 0 评论 -
虚拟机类加载机制之类加载时机(JVM学习笔记)
类声明周期 类从被加载到虚拟机内存开始,到卸载出内存为止,他生命周期包括了: 加载->验证->准备->解析->初始化->使用->卸载什么情况下开始类加载第一阶段?遇到new,getstatic,putstatic或者invokestatic这4条字节码指令时。如果类没有惊醒过初始化,则先触发其初始化。常见场景:new实例化对象,...原创 2018-04-22 16:46:53 · 218 阅读 · 0 评论 -
Java之Volatile关键字使用
1.为什么要使用Volatile关键字?先来看看一段代码:package com.zy; importjava.util.concurrent.TimeUnit; public class VolatileTest { private static boolean isRuning = true; public static void main(String[] arg原创 2016-05-02 22:43:23 · 581 阅读 · 1 评论 -
大文件MD5值计算
import java.io.File;import java.io.FileInputStream;import java.math.BigInteger;import java.security.MessageDigest;public class TestBigFileMD5 {private static final String FILE_NAME="原创 2015-09-25 14:47:01 · 3847 阅读 · 0 评论 -
P12证书转BKS证书
1.请先下载第三方转换工具protecle,配置java环境2.点击运行protecle.jar2.新建BKSStore3.导入p12密钥对,包含公钥和私钥4.修改别名5.为客户端的私钥创建密码6.另存为BKS原创 2015-12-25 11:36:29 · 5654 阅读 · 2 评论 -
遍历List集合同时删除元素的正确方法
import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class TestIterator { public static void main(String[] args) { List list=new ArrayList(); list.add("a"); l原创 2015-09-28 16:46:20 · 2745 阅读 · 0 评论 -
DES加密解密
DES加密解密代码如下:import java.io.UnsupportedEncodingException;import java.net.URLEncoder;import java.security.Key;import java.security.SecureRandom;import java.util.Base64;import javax.crypto.Ciphe原创 2015-12-29 17:38:36 · 404 阅读 · 0 评论 -
高性能硬件上的程序部署策略(深入理解JVM虚拟机笔记)
高性能硬件上的程序部署策略 高性能硬件上部署程序,主要方式有两种: 1.通过64位的JDK来使用大内存 2.使用若干个32位虚拟机建立逻辑集群来利用硬件资源 对于用户交互性强、对停顿时间敏感的系统,可以给java虚拟机分配超大堆内存的前提是有把握把应用程序的Full GC频率控制的足够低,至少低到不会影响用户使用,譬如十几原创 2018-04-20 23:58:22 · 340 阅读 · 0 评论