- Android开发笔记(四)
so.far_away
安卓开发进阶android笔记人工智能
中级控件图形定制图形Drawable形状图形Shape状态列表图形选择按钮复选框CheckBox开关按钮Switch单选按钮RadioButton文本输入编辑框EditText焦点变更监听器图形定制图形DrawableAndroid把所有能够显示的图形都抽象为Drawable类(可绘制的),这里的图形不止是图片,还包括色块、画板、背景等。包含图片在内的图形文件放在res目录下的各个drawable
- android开发笔记————简易随机器的制作
小时的枫
Android开发androidandroid开发asAndroidstudio
这几天无聊,于是做了个随机器,想着以后可能会用的到。以下是程序的运行截图图1可以通过右上角的菜单转到图2的Activity。这个程序提供了两个功能,一个是输入姓名后随机出姓名。另一个是产生随机数。—————————————————————————————————————————————————————————————————————————————好的,下面来看下怎么做吧:制作工具选的是Andro
- Android 开发笔记 -- Service
__lifanxin
androidandroidservicehandler
Android开发笔记--Service基本概念创建服务创建启动服务创建绑定服务服务的生命周期后台任务(非主线程任务)异步消息处理机制HandlerAsyncTask基本概念android四大组件之一:Service;Service是可在后台长时间运行但不提供界面的应用组件;Service依赖于创建Service的应用程序进程;可以在后台运行,但其自身并不会开启新线程;三种不同的服务类型:前台,执
- Android开发笔记:Retrofit + OkHttp3 + coroutines + LiveData打造一款网络请求框架
Android-until
Android程序员架构AndroidAndroid开发jetpackjava移动开发
一个好的网络框架需要有那些特点呢?请求当然这个请求不单单是发送请求这么简单,它包括请求相关的一系列配置是否简易、发送模式是否灵活切换、请求头信息是否易处理、请求参数是否易操作等等响应一个好的网络请求框架肯定需要提高我们的生产力,保证我们程序的健壮性,那么响应体和这些又有什么关系呢?容易转换成不同需求的实体是否能返回不同类型的结构。xml、json、text等等总的来说就是易使用、易扩展、可读性高一
- Android开发笔记(三)—Activity篇
so.far_away
安卓开发进阶安卓笔记android
活动组件Activity启动和结束生命周期启动模式信息传递Intent显式Intent隐式Intent向下一个Activity发送数据向上一个Activity返回数据附加信息利用资源文件配置字符串利用元数据传递配置信息给应用页面注册快捷方式启动和结束(1)从当前页面跳到新页面:startActivity(newIntent(源页面.this,目标页面.class))(2)从当前页面回到上一个页面,
- Android开发笔记
不偏不倚就是你
1.查询包名下的跳转activityPackageManagerpackageManager=context.getPackageManager();Intentintent=packageManager.getLaunchIntentForPackage("com.instagram.android");if(intent==null){GLog.iTag(SocialConstant.LOG_
- GIS地图学习笔记二之Android开发
沐左
androidGIS地图开发androidgissdkv100-1-0
新项目中需要用到GIS地图,触及自己的知识盲区。所以有必要去学习一下,这里把学习过程与思考记录一下。我这里使用的是ArcGISRuntimeSDK100.2.0,ArcGISRuntime还有一个版本10.2.*,这个版本的ArcGISRuntimeSDK的使用可以参考《ArcGISRuntimeSDKforAndroid开发笔记》系列blog。1、找资料1、适用于Android的ArcGISRu
- Android开发笔记 :理解Fragment
Tai_Monster
Android开发笔记android笔记
Android开发笔记:理解Fragment导言本篇文章产生的原因很简单,就是我在了解AndroidJetpack中的Lifecycle框架时发现Lifecycle具体时间和状态的更新都是由一个名为ReportFragment的Fragment来跟踪的,为了更好的了解Fragment是如何追踪Activity生命周期状态的变化我们有必要对Fragment组件进行更深入的探讨。Fragment管理器
- Service Intent must be explicit的解决方案
hero的技术小黑屋
title:ServiceIntentmustbeexplicit的解决方案date:2017-09-1415:11:43tags:Androidcategories:Android开发笔记今天在学习AIDL的时候,通过以下步骤:在AndroidMenifest中声明service在客户端中绑定serviceIntentintentService=newIntent();intentService
- android开发笔记,Android开发笔记
彼得威
android开发笔记
背景针对平时开发过程中遇到的问题、bug、难点或知识点做一个归纳总结。不定时更新。学习地址1.网站2.博客埋坑1.Android5.0以下View.getContext()强转Activity崩溃直接继承Activity的Activity构造出来的View.getContext()返回的是当前Activity。但是:当View的Activity是继承自AppCompatActivity,并且在5.
- android开发笔记之进程通信Messenger
hfreeman2008
android开发笔记android开发笔记messengerandroid
写在前面的话前面我写了一篇文章—android学习之remoteservice的aidl详解,讲到跨进程多线程通信,我们使用aidl技术来实现。但是平时我们大部分的应用可能只要要求跨进程通信,而不需要使用多线程,那么这时候,Messenger就是我们的一个非常好的选择。比起aidl来,Messenger实现更简单,并且不需要考虑线程安全的问题。我参考了文章:Android基于Message的进程间
- android开发笔记-知识点
哈丨吅
android开发
1:AndroidPermissiondenied(不允许连接Socket)错误原因是:需要访问到网络,所以,在AndroidManifest.xml中,需要进行如下配置:2:ListView滚动变黑解决方法ListView增加一个属性android:cacheColorHint="#00000000"3:Item用自己的背景盖住了Selector光标ListView增加一个属性:android:
- Android开发笔记: Android动态添加、删除控件
程序猿的杂货店
Android开发笔记android开发控件
此文章主要是将如何动态添加,删除控件1创建布局文件2代码实现动态添加,删除
- Android开发笔记之基础篇 ------ UI布局
大熊Sir
在Android开发的绝大部分场景里,我们都需要构建至少一个以上的UI界面用于与user的交互。UI界面本身其实只是静态的图片或者框架,但是通过对其的控制,可以实现几乎所有的用户使用效果,例如点击后高亮,点击后消失,左划删除单个条目等等。那么今天就来看看Android中关于UI布局的一些概念和知识。一、LinearLayoutVSRelativeLayoutVSFrameLayoutVSConst
- Android开发笔记之Log日志输出
飞机火车巴雷特
笔记
一、引言日志记录是将应用程序的操作和状态记录到辅助接口(例如文件,或者数据库,都可以)的过程。然而,软件开发人员并不十分重视日志记录。其实有用的日志可以为开发人员(特别是当有人必须调试/维护别人的代码时)在试图理解代码的作用时提供巨大帮助。一些开发人员说堆栈跟踪是人们应该需要的,但这与事实相去甚远。堆栈跟踪很棒,可以告诉您哪里出了什么问题,但它们无法告诉您最初是如何到达那里的。当然,您可以通过断点
- Android开发笔记
大小雪
android笔记
一、知识点1、Notification通知的创建流程1)创建一个NotificationManager,获取系统服务,getSystemService()方法;2)使用Builder构造器来创建Notification对象,设置通知的各种属性;3)NotificationChannel通知渠道,Android8.0引入了通知渠道,允许为要显示的每种通知类型创建用户可自定义的渠道;4)发送通知,no
- Android开发笔记——MVVM模式&Jetpack实现MVVM模式
Yang杰
Android开发学习笔记Androidandroid
Android开发笔记——MVVM模式&Jetpack实现的MVVM模式MVVM模式MVC、MVP和MVVMMVC概述特点MVP概述MVC和MVP的区别特点MVVM概述特点Jetpack实现MVVMModelViewViewModel在之前的学习中,我将Jetpack中使用最为频繁的几个架构组件都做了相关的学习和了解,但是,之前只是对每个组件分别进行学习,而如何在实际开发中学会熟练使用Jetpac
- Android开发笔记:适配器(Adapter)以及ListView和RecycleView的简单使用
Tai_Monster
Android开发笔记androidjavamvc
Android开发笔记:适配器(Adapter)以及ListView和RecycleView的简单使用在使用ListView和RecycleView之前,我们得先了解适配器的概念。适配器:具体来说,适配器Adapter是一个接口。官方文档中是这样描述的:AnAdapterobjectactsasabridgebetweenanAdapterViewandtheunderlyingdataforth
- Android开发笔记:用Jsoup简单获取网页的数据
Tai_Monster
Android开发笔记androidxmljava
Android开发笔记:用Jsoup简单获取网页的数据有时候我们在开发过程中,比如仿写一些app时,可能缺少相关的可用的接口给我们提供数据,这个时候据需要我们去网页去爬取一些数据。这个时候我们就可以使用一些开源库来帮助我们轻松地爬取数据。Jsop开源库:jsoup是一款Java的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于
- Android开发笔记之Fragment的使用教程
目录何为碎片特点如何引入碎片静态引入动态加载碎片的通信活动和碎片间的通信碎片和活动间的通信碎片和碎片间的通信何为碎片官方文档中提到:Afragmentrepresentsamodularportionoftheuserinterfacewithinanactivity.Afragmenthasitsownlifecycle,receivesitsowninputevents,andyoucanad
- Android开发笔记XML数据解析方法及优缺点
目录何为XML数据如何解析XML数据1.Pull解析2.简单的Pull解析3.SAX解析何为XML数据XML指可扩展标记语言(eXtensibleMarkupLanguage)。可扩展标记语言(英语:ExtensibleMarkupLanguage,简称:XML)是一种标记语言,是从标准通用标记语言(SGML)中简化修改出来的。其最主要的功能就是为了方便数据的传输与交换。在Android开发中,我
- Android SeekBar在刷新使用中需要注意的问题
目录问题分析问题解决方法Android开发笔记:关于SeekBar在刷新使用中的一些问题问题今天在用Navigation在两个Fragment之间导航时发现了从第二个Fragment返回到第一个Fragment时SeekBar出现数据丢失和进度条不刷新的情况。具体Demo是在第一个Fragemnt中通过滑动条改变ViewModel中的数据,并在点击按钮后导航进入第二个Fragment,在第二个Fr
- [Android开发笔记]多渠道打包(动态替换包名、常量、资源文件等)
goweii
因项目需求,需生成多个具有不同的应用图标、应用名、启动图APP,并且可以被同时安装。之前使用过多渠道打包去给友盟生成不同的渠道包,觉得应该也可以实现上面的需求,所以在此记录一下。具体的配置在app:build.gradle中添加如下配置,注释比较全,就不过多介绍了android{...defaultConfig{applicationId"per.goweii.one"minSdkVersion1
- iOS开发者入门Android开发笔记(三)-调试工具Log
赵梦楠
前言笔者是一名iOS开发者,最近在学习Android开发。作为移动平台的两大阵营,iOS和Android开发既有想通之处,也有各自不同的特性。本系列文章,主要是从iOS开发者的角度,类比地去学习Android开发,记录下自己的一些心得体会。如果你也对Android开发感兴趣,并想入门学习。建议可以去看郭霖的《第一行代码》。笔者也是通过这本书来入门学习Android开发的,因此,本文的大部分知识,你
- 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:离线矢量数据下载
duyi324
【原文链接:http://www.cnblogs.com/gis-luq/p/5858048.html】1、前言1.1、环境准备:ArcGISforDesktop10.4.1(10.2.1以上版本即可)ArcGISforServer10.4.1(10.2.1以上版本即可)PostgreSQL、MicrosoftSQLServer、或Oracle设置企业级地理数据库。1.2、发布具有同步能力的Fea
- 【Android开发笔记】证件相机,身份证及营业执照拍摄裁剪
Smartown
简介针对项目中的一个需求而开发的一个库,实现了身份证正反面、营业执照横版、竖版的拍摄和裁剪功能,现已开源在GitHub上,需要的同学直接clone到本地添加依赖即可使用。Githubhttps://github.com/xiaoowuu/CertificateCamera预览Demo演示身份证正面身份证反面营业执照-横版营业执照-竖版
- Android开发笔记
ZhaoWeihao
我最近在学校期末作业使用Kotlin语言做一个校园社区AndroidAPP,仍然在制作中。。。Github项目地址:https://github.com/zhaoweihaoChina/hnuplus这是我用记录一些我在做的时候需要记录的东西,用来以后翻看。也给需要的同学做个参考。Activity调用Fragment的公共方法首先创建一个接口publicinterfaceMyInterface{v
- [Android开发笔记]私有Maven仓库使用指南
goweii
简介我们在使用AndroidStudio开发安卓项目时,会引用到官方sdk或者他人的库,方法都是在module的build.gradle文件中添加如下代码:implementation'com.android.support:appcompat-v7:28.0.0'一行代码就可以把我们想使用的库引入到了项目中。然而一般情况下我们要想引入自己开发的库,则是将整个module导入项目,并在需要引用该m
- android开发笔记之Android Studio使用Glide
hfreeman2008
android开发笔记android开发androidstudioglide
Glide介绍AnimageloadingandcachinglibraryforAndroidfocusedonsmoothscrolling安卓上专注于平滑滑动的图片加载和缓存库。Glide有以下特点:1.注重list中的图片在scroll状态下的流畅性。2.可以展示视频图像,普通格式图片和GIF格式。3.默认网络请求使用的是httpurlconnection,同时支持自定义使用volley或
- android开发笔记之Android Studio运行UiAutomator
hfreeman2008
android开发笔记androidandroid开发androidstudiouiautomato
简历UiAutomator是android的一种自动化测试工具,其优点是可以对所有应用进行跨应用的操作自动化测试.uiautomator的实现是在AndroidStudio应用下的androidTest目录下:Demo第一步:在build.gradle文件中添加uiautomator://SetthisdependencytobuildandrunUIAutomatortestsandroidTe
- java类加载顺序
3213213333332132
java
package com.demo;
/**
* @Description 类加载顺序
* @author FuJianyong
* 2015-2-6上午11:21:37
*/
public class ClassLoaderSequence {
String s1 = "成员属性";
static String s2 = "
- Hibernate与mybitas的比较
BlueSkator
sqlHibernate框架ibatisorm
第一章 Hibernate与MyBatis
Hibernate 是当前最流行的O/R mapping框架,它出身于sf.net,现在已经成为Jboss的一部分。 Mybatis 是另外一种优秀的O/R mapping框架。目前属于apache的一个子项目。
MyBatis 参考资料官网:http:
- php多维数组排序以及实际工作中的应用
dcj3sjt126com
PHPusortuasort
自定义排序函数返回false或负数意味着第一个参数应该排在第二个参数的前面, 正数或true反之, 0相等usort不保存键名uasort 键名会保存下来uksort 排序是对键名进行的
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8&q
- DOM改变字体大小
周华华
前端
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml&q
- c3p0的配置
g21121
c3p0
c3p0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。c3p0的下载地址是:http://sourceforge.net/projects/c3p0/这里可以下载到c3p0最新版本。
以在spring中配置dataSource为例:
<!-- spring加载资源文件 -->
<bean name="prope
- Java获取工程路径的几种方法
510888780
java
第一种:
File f = new File(this.getClass().getResource("/").getPath());
System.out.println(f);
结果:
C:\Documents%20and%20Settings\Administrator\workspace\projectName\bin
获取当前类的所在工程路径;
如果不加“
- 在类Unix系统下实现SSH免密码登录服务器
Harry642
免密ssh
1.客户机
(1)执行ssh-keygen -t rsa -C "
[email protected]"生成公钥,xxx为自定义大email地址
(2)执行scp ~/.ssh/id_rsa.pub root@xxxxxxxxx:/tmp将公钥拷贝到服务器上,xxx为服务器地址
(3)执行cat
- Java新手入门的30个基本概念一
aijuans
javajava 入门新手
在我们学习Java的过程中,掌握其中的基本概念对我们的学习无论是J2SE,J2EE,J2ME都是很重要的,J2SE是Java的基础,所以有必要对其中的基本概念做以归纳,以便大家在以后的学习过程中更好的理解java的精髓,在此我总结了30条基本的概念。 Java概述: 目前Java主要应用于中间件的开发(middleware)---处理客户机于服务器之间的通信技术,早期的实践证明,Java不适合
- Memcached for windows 简单介绍
antlove
javaWebwindowscachememcached
1. 安装memcached server
a. 下载memcached-1.2.6-win32-bin.zip
b. 解压缩,dos 窗口切换到 memcached.exe所在目录,运行memcached.exe -d install
c.启动memcached Server,直接在dos窗口键入 net start "memcached Server&quo
- 数据库对象的视图和索引
百合不是茶
索引oeacle数据库视图
视图
视图是从一个表或视图导出的表,也可以是从多个表或视图导出的表。视图是一个虚表,数据库不对视图所对应的数据进行实际存储,只存储视图的定义,对视图的数据进行操作时,只能将字段定义为视图,不能将具体的数据定义为视图
为什么oracle需要视图;
&
- Mockito(一) --入门篇
bijian1013
持续集成mockito单元测试
Mockito是一个针对Java的mocking框架,它与EasyMock和jMock很相似,但是通过在执行后校验什么已经被调用,它消除了对期望 行为(expectations)的需要。其它的mocking库需要你在执行前记录期望行为(expectations),而这导致了丑陋的初始化代码。
&nb
- 精通Oracle10编程SQL(5)SQL函数
bijian1013
oracle数据库plsql
/*
* SQL函数
*/
--数字函数
--ABS(n):返回数字n的绝对值
declare
v_abs number(6,2);
begin
v_abs:=abs(&no);
dbms_output.put_line('绝对值:'||v_abs);
end;
--ACOS(n):返回数字n的反余弦值,输入值的范围是-1~1,输出值的单位为弧度
- 【Log4j一】Log4j总体介绍
bit1129
log4j
Log4j组件:Logger、Appender、Layout
Log4j核心包含三个组件:logger、appender和layout。这三个组件协作提供日志功能:
日志的输出目标
日志的输出格式
日志的输出级别(是否抑制日志的输出)
logger继承特性
A logger is said to be an ancestor of anothe
- Java IO笔记
白糖_
java
public static void main(String[] args) throws IOException {
//输入流
InputStream in = Test.class.getResourceAsStream("/test");
InputStreamReader isr = new InputStreamReader(in);
Bu
- Docker 监控
ronin47
docker监控
目前项目内部署了docker,于是涉及到关于监控的事情,参考一些经典实例以及一些自己的想法,总结一下思路。 1、关于监控的内容 监控宿主机本身
监控宿主机本身还是比较简单的,同其他服务器监控类似,对cpu、network、io、disk等做通用的检查,这里不再细说。
额外的,因为是docker的
- java-顺时针打印图形
bylijinnan
java
一个画图程序 要求打印出:
1.int i=5;
2.1 2 3 4 5
3.16 17 18 19 6
4.15 24 25 20 7
5.14 23 22 21 8
6.13 12 11 10 9
7.
8.int i=6
9.1 2 3 4 5 6
10.20 21 22 23 24 7
11.19
- 关于iReport汉化版强制使用英文的配置方法
Kai_Ge
iReport汉化英文版
对于那些具有强迫症的工程师来说,软件汉化固然好用,但是汉化不完整却极为头疼,本方法针对iReport汉化不完整的情况,强制使用英文版,方法如下:
在 iReport 安装路径下的 etc/ireport.conf 里增加红色部分启动参数,即可变为英文版。
# ${HOME} will be replaced by user home directory accordin
- [并行计算]论宇宙的可计算性
comsci
并行计算
现在我们知道,一个涡旋系统具有并行计算能力.按照自然运动理论,这个系统也同时具有存储能力,同时具备计算和存储能力的系统,在某种条件下一般都会产生意识......
那么,这种概念让我们推论出一个结论
&nb
- 用OpenGL实现无限循环的coverflow
dai_lm
androidcoverflow
网上找了很久,都是用Gallery实现的,效果不是很满意,结果发现这个用OpenGL实现的,稍微修改了一下源码,实现了无限循环功能
源码地址:
https://github.com/jackfengji/glcoverflow
public class CoverFlowOpenGL extends GLSurfaceView implements
GLSurfaceV
- JAVA数据计算的几个解决方案1
datamachine
javaHibernate计算
老大丢过来的软件跑了10天,摸到点门道,正好跟以前攒的私房有关联,整理存档。
-----------------------------华丽的分割线-------------------------------------
数据计算层是指介于数据存储和应用程序之间,负责计算数据存储层的数据,并将计算结果返回应用程序的层次。J
&nbs
- 简单的用户授权系统,利用给user表添加一个字段标识管理员的方式
dcj3sjt126com
yii
怎么创建一个简单的(非 RBAC)用户授权系统
通过查看论坛,我发现这是一个常见的问题,所以我决定写这篇文章。
本文只包括授权系统.假设你已经知道怎么创建身份验证系统(登录)。 数据库
首先在 user 表创建一个新的字段(integer 类型),字段名 'accessLevel',它定义了用户的访问权限 扩展 CWebUser 类
在配置文件(一般为 protecte
- 未选之路
dcj3sjt126com
诗
作者:罗伯特*费罗斯特
黄色的树林里分出两条路,
可惜我不能同时去涉足,
我在那路口久久伫立,
我向着一条路极目望去,
直到它消失在丛林深处.
但我却选了另外一条路,
它荒草萋萋,十分幽寂;
显得更诱人,更美丽,
虽然在这两条小路上,
都很少留下旅人的足迹.
那天清晨落叶满地,
两条路都未见脚印痕迹.
呵,留下一条路等改日再
- Java处理15位身份证变18位
蕃薯耀
18位身份证变15位15位身份证变18位身份证转换
15位身份证变18位,18位身份证变15位
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 201
- SpringMVC4零配置--应用上下文配置【AppConfig】
hanqunfeng
springmvc4
从spring3.0开始,Spring将JavaConfig整合到核心模块,普通的POJO只需要标注@Configuration注解,就可以成为spring配置类,并通过在方法上标注@Bean注解的方式注入bean。
Xml配置和Java类配置对比如下:
applicationContext-AppConfig.xml
<!-- 激活自动代理功能 参看:
- Android中webview跟JAVASCRIPT中的交互
jackyrong
JavaScripthtmlandroid脚本
在android的应用程序中,可以直接调用webview中的javascript代码,而webview中的javascript代码,也可以去调用ANDROID应用程序(也就是JAVA部分的代码).下面举例说明之:
1 JAVASCRIPT脚本调用android程序
要在webview中,调用addJavascriptInterface(OBJ,int
- 8个最佳Web开发资源推荐
lampcy
编程Web程序员
Web开发对程序员来说是一项较为复杂的工作,程序员需要快速地满足用户需求。如今很多的在线资源可以给程序员提供帮助,比如指导手册、在线课程和一些参考资料,而且这些资源基本都是免费和适合初学者的。无论你是需要选择一门新的编程语言,或是了解最新的标准,还是需要从其他地方找到一些灵感,我们这里为你整理了一些很好的Web开发资源,帮助你更成功地进行Web开发。
这里列出10个最佳Web开发资源,它们都是受
- 架构师之面试------jdk的hashMap实现
nannan408
HashMap
1.前言。
如题。
2.详述。
(1)hashMap算法就是数组链表。数组存放的元素是键值对。jdk通过移位算法(其实也就是简单的加乘算法),如下代码来生成数组下标(生成后indexFor一下就成下标了)。
static int hash(int h)
{
h ^= (h >>> 20) ^ (h >>>
- html禁止清除input文本输入缓存
Rainbow702
html缓存input输入框change
多数浏览器默认会缓存input的值,只有使用ctl+F5强制刷新的才可以清除缓存记录。
如果不想让浏览器缓存input的值,有2种方法:
方法一: 在不想使用缓存的input中添加 autocomplete="off";
<input type="text" autocomplete="off" n
- POJO和JavaBean的区别和联系
tjmljw
POJOjava beans
POJO 和JavaBean是我们常见的两个关键字,一般容易混淆,POJO全称是Plain Ordinary Java Object / Pure Old Java Object,中文可以翻译成:普通Java类,具有一部分getter/setter方法的那种类就可以称作POJO,但是JavaBean则比 POJO复杂很多, Java Bean 是可复用的组件,对 Java Bean 并没有严格的规
- java中单例的五种写法
liuxiaoling
java单例
/**
* 单例模式的五种写法:
* 1、懒汉
* 2、恶汉
* 3、静态内部类
* 4、枚举
* 5、双重校验锁
*/
/**
* 五、 双重校验锁,在当前的内存模型中无效
*/
class LockSingleton
{
private volatile static LockSingleton singleton;
pri