- 博客(25)
- 资源 (2)
- 收藏
- 关注
原创 高效并发 第一节:java内存模型(JVM笔记)
高效并发 第一节:java内存模型(JVM笔记) java虚拟机规范试图定义一种java内存模型(JMM)来屏蔽掉各种硬件和操作系统的内存访问差异,让java程序在各平台都能达到一致性的内存访问效果。主内存与工作内存 java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。 这里所说的变量包括实例字段静态字段构成数组
2018-04-25 00:32:00 349
原创 虚拟机类加载机制 第二节:类加载器(JVM笔记)
类与类加载器 对于任意一个类都要由加载他的类加载器和这类本身一同确定其在java虚拟机中的唯一性。也就是说比较两个类是否相等,只有在这两个类是由同一个类加载器加载的前提下才有意义,否则即使这两个类是来源于同一个Class文件,只要加载他的加载器不同,这两个类就必定不相等。双亲委派模型 站在JVM的角度讲只有两种不同的类加载器:启动类加载器,这个类加载器使用C++语言实现,虚拟机自身的一部分
2018-04-23 23:32:30 194
原创 虚拟机类加载机制 第二节:类加载的过程(JVM笔记)
加载 加载阶段是类加载的过程的一个阶段,在加载阶段虚拟机需要完成三件事:通过一个类的全限定名来获取定义此类的二进制字节流将字节流所代表的静态存储结构转化为方法区的运行时存储结构java堆中生成一个代表这个类的java.lang.Class对象,作为方法区这些数据的访问入口 加载完成后外部的二进制字节流就按照虚拟机所需的格式存储在方法区,方法区中的数据存储格式由虚拟机自行定义。验证 虚
2018-04-23 00:41:46 258
原创 虚拟机类加载机制之类加载时机(JVM学习笔记)
类声明周期 类从被加载到虚拟机内存开始,到卸载出内存为止,他生命周期包括了: 加载->验证->准备->解析->初始化->使用->卸载什么情况下开始类加载第一阶段?遇到new,getstatic,putstatic或者invokestatic这4条字节码指令时。如果类没有惊醒过初始化,则先触发其初始化。常见场景:new实例化对象,...
2018-04-22 16:46:53 199
原创 高性能硬件上的程序部署策略(深入理解JVM虚拟机笔记)
高性能硬件上的程序部署策略 高性能硬件上部署程序,主要方式有两种: 1.通过64位的JDK来使用大内存 2.使用若干个32位虚拟机建立逻辑集群来利用硬件资源 对于用户交互性强、对停顿时间敏感的系统,可以给java虚拟机分配超大堆内存的前提是有把握把应用程序的Full GC频率控制的足够低,至少低到不会影响用户使用,譬如十几
2018-04-20 23:58:22 312
原创 虚拟机性能监控与故障处理工具(学习笔记)
虚拟机性能监控与故障处理工具jps:虚拟机进程状况工具 可以列出正在运行虚拟机的名称,并显示虚拟机执行主类,,以及这些进程本地虚拟机的唯一ID,对于本地虚拟机来说,LVMID与操作系统进程ID一致。 jps命令格式:jps [options] [hostid]执行样例:jps工具主要选项: 选项 作用 -q...
2018-04-18 23:39:19 226
原创 CentOS开启关闭端口方法
打开端口:[root@host ~]# /sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT [root@host ~]# /etc/init.d/iptables save [root@host ~]# service iptables restart 关闭端口[root@host ~]# /sbin/iptables -I
2017-10-02 17:33:42 4403
原创 使用Python3将manifest.xml转为excel供查看
#!/usr/bin/env python3from xml.dom.minidom import parseimport xml.dom.minidomimport os,os.pathimport xlwtimport sys, getopt#存放所有数据,二位数据,到时候将次二维数组数据直接写入excel中projectsExcel=[]projectsExcel.append([
2017-09-24 22:54:26 931
原创 Android系统四大组件
应用组件是 Android应用的基本构建基块。每个组件都是一个不同的点,系统可以通过它进入您的应用。并非所有组件都是用户的实际入口点,有些组件相互依赖,但每个组件都以独立实体形式存在,并发挥特定作用—每个组件都是唯一的构建基块,有助于定义应用的总体行为。共有四种不同的应用组件类型。每种类型都服务于不同的目的,并且具有定义组件的创建和销毁方式的不同生命周期。 以下便是这四种应用组件类型:
2017-05-30 22:48:15 582
转载 Android应用组件
应用组件是 Android应用的基本构建基块。每个组件都是一个不同的点,系统可以通过它进入您的应用。并非所有组件都是用户的实际入口点,有些组件相互依赖,但每个组件都以独立实体形式存在,并发挥特定作用—每个组件都是唯一的构建基块,有助于定义应用的总体行为。 共有四种不同的应用组件类型。每种类型都服务于不同的目的,并且具有定义组件的创建和销毁方式的不同生命周期。以下便是这四种应用组件类型:
2016-06-10 18:49:48 556
转载 Android应用基础知识
Android 应用采用 Java 编程语言编写。Android SDK 工具将您的代码—连同任何数据和资源文件—编译到一个 APK: Android 软件包,即带有 .apk 后缀的存档文件中。一个 APK 文件包含 Android 应用的所有内容,它是基于 Android 系统的设备用来安装应用的文件。安装到设备后,每个 Android 应用都运行在自己的安全沙箱内:·
2016-06-10 18:22:40 395
原创 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 548 1
原创 Android5.0以下WebView实现访问Https双向认证网页
最近做一个安全级别比较高的项目,对方要求使用HTTPS双向认证来访问web网页。双向认证在android5.0以上很好解决,但是在Android5.0以下,webviewclient中没有客户端向服务器发送证书的回调接口(回调是个隐藏函数)。网上搜索到大概有这么几种解决方法:1. 利用反射调用隐藏函数(不太现实,这个方法为回调方法)2. 自己编译完整的class.j
2016-01-22 16:31:30 2559 1
原创 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 383
原创 P12证书转BKS证书
1.请先下载第三方转换工具protecle,配置java环境2.点击运行protecle.jar2.新建BKSStore3.导入p12密钥对,包含公钥和私钥4.修改别名5.为客户端的私钥创建密码6.另存为BKS
2015-12-25 11:36:29 5606 2
原创 OpenFire开启SSL双向认证
准备工作1.1:安装JDK,配置环境变量,保证keytool工具可用1.2:进入:openfire安装目录/resources/security文件夹准备服务器证书服务器密钥库对应为keystore2.1:改变keystore默认密码keytool-storepasswd -keystore keystore2.2创建请求签名文件,用于给CA签名keytool-ce
2015-12-24 12:47:15 5827
转载 Android访问Https双向认证API
最近项目需要访问到https双向认证的相关东西,以下是Android客户端访问https双向认证API的代码,如有不足之处请指正。原文链接:http://frank-zhu.github.io/android/2014/12/26/android-https-ssl/,参考了此篇文章的代码,谢谢。话不多说,直接上代码:package cn.pedant.SafeWebViewBridge.
2015-12-17 16:08:48 2520
原创 JAVA调用HTTPS双向认证API
最近稍微清闲,然后稍微研究一下关于HTTPS,SSL的相关知识,算是一些随手笔记,对自己学习的记录。import java.io.InputStream;import java.net.URL;import java.net.URLConnection;import javax.net.ssl.HostnameVerifier;import javax.net.ssl.HttpsUR
2015-11-23 16:04:48 10107 2
原创 Nginx配置https双向认证
1. 前期的准备工作:安装openssl和nginx的https模块cd ~/mkdir sslcd sslmkdir demoCAcd demoCAmkdir newcertsmkdir privatetouch index.txtecho '01' > serial2. 制作CA证书(这个是信任的起点,根证书,所有其他的证书都要
2015-11-20 17:36:43 11332 1
转载 Nginx配置https访问
原文连接:http://www.tuicool.com/articles/NrmE3e1. 前期的准备工作:安装好openssl,和nginx的https模块,运行以下命令:cd ~/mkdir sslcd sslmkdir demoCAcd demoCAmkdir newcertsmkdir privatetouch index.txtec
2015-11-20 15:34:55 749
原创 tomcat8配置https双向认证
工具准备:keytool(JDK自带证书生成工具),tomcat8利用JDK中keyStore生成证书。前言:关于HTTPS介绍文章请看此博文,我也是看了他的博文才搞懂的,真心感谢。博文地址:http://www.cnblogs.com/JeffreySun/archive/2010/06/24/1627247.html为服务器生成证书目标机器域名:localhostK
2015-11-20 11:16:46 7050 7
原创 JAVA调用WebService
最近项目中需要其他系统的WebService,以前都是直接调用HTTP,然后自己找了如下方法调用,也是对自己学习的一点笔记。工程需要依赖apache的包,下载地址: 代码如下: 第一个是调用工具类:import java.rmi.RemoteException;import javax.xml.namespace.QName;import javax.xml.rpc.Param
2015-10-10 14:11:48 555
原创 遍历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 2723
原创 大文件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 3790
原创 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 993
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人