- 经纬度转换地址
陈吉俊
servletjava数据库
2021-06-0315:16:381.地理编码查询接口是单列模式的,我们需要调用让它自己实例化//在OnCreate方法里创建地理编码检索实例GeoCodergeoCoder=GeoCoder.newInstance();2.调用这个方法把你想要的经纬度传入/***经纬度或地址相互转换**@paramlatlng*/privatevoidlatlngToAddress(LatLnglatlng)
- effective java笔记
Mrryo
1、Java中创建(实例化)对象的五种方式:a、new一个对象。b、反射,Objecta=Class.forName("java.lang.Object").newInstance();c、通过I/O流(包括反序列化)。d、对象的clone()。e、通过工厂方法返回对象。2、抽象类,要想对其实例化,只能用getInstance().(单例模式)。3、内存泄漏:用数组、集合、缓存、监听器等时要注意释
- 已解决org.xml.sax.SAXNotRecognizedException异常的正确解决方法,亲测有效!!!
鹏码纵横
Bug追踪者xml
要解决org.xml.sax.SAXNotRecognizedException异常,通常涉及以下步骤。这种异常通常是由于SAX解析器不识别或不支持某些特性或属性导致的。以下是具体的解决方案:1.确认属性或特性的正确性确保你设置的属性或特性名称是正确的,并且该解析器确实支持。例如:SAXParserFactoryfactory=SAXParserFactory.newInstance();fact
- day12 java创建对象的方法
老婆日向雏田
一、使用new关键字Useruser=newUser();二、使用反射机制使用Class类的newInstance方法创建对象//创建方法1Useruser=(User)Class.forName("根路径.User").newInstance();//创建方法2(用这个最好)Useruser=User.class.newInstance();使用Constructor类的newInstance方
- java.lang.ExceptionInInitializerError SpringJUnit4ClassRunner
19我想胖
springboot+JUnit4在启动测试方法的时候报错如下:java.lang.ExceptionInInitializerErroratsun.reflect.NativeConstructorAccessorImpl.newInstance0(NativeMethod)atsun.reflect.NativeConstructorAccessorImpl.newInstance(Nativ
- 私有对象字段获取和字节数组
简书家的辰颜
byteb=newbyte[2048];创建一个字节数组,再文件读取流中进行临时缓存,开辟空间之后,之后分批次进行流最后的传递完全。Classclazz=Class.forName("cn.liangqinghai.reflect.Beans1");Beans1bean=(Beans1)clazz.newInstance();//获取单个私有属性Fieldfield=bean.getClass()
- 5 创建类的对象与调用方法的方式
给你一杯BUG
java
1有了Class对象,能做什么?创建类的对象:调用Class对象的newInstance()方法1)类必须有一个无参数的构造器2)类的构造器的访问权限需要足够思考?难道没有无参的构造器就不能创建对象了吗?只要在操作时明确的调用类的构造器,并把参数传递进去之后,才可以实例化操作。步骤如下:1)通过Class类的getDeclaredConstructor(Class…parameterTypes)取
- WebService请求wsdl外部接口
梦神喵呜将
JaxWsDynamicClientFactorydcf=JaxWsDynamicClientFactory.newInstance();Clientclient=dcf.createClient(url);Object[]objects=newObject[0];//请求返回值objects=client.invoke("请求地址","请求参数");//将获取的XML数组转换为StringStr
- "init"与"clinit"的区别
三也视界
在编译生成class文件时,会自动产生两个方法,一个是类的初始化方法,另一个是实例的初始化方法注意::如果没有静态块,静态变量则没有:类的实例构造器。关于二者的详细对照::在JVM第一次加载class文件时调用,包括静态变量初始化语句和静态块的执行:在实例创建出来的时候调用,包括调用new操作符;调用Class或Java.lang.reflect.Constructor对象的newInstance
- JAVA反射
Hello_Brian
编程语言java开发语言
什么是反射反射是指在程序运行状态下,不仅可以获取任意类的成员变量(Fields)、成员方法(Methods)、构造方法(Constructors)等信息,还能够动态创建Java类的实例(newInstance)、调用任意类方法(invoke)、修改任意类成员变量值等。JAVA反射机制是JAVA被视为动态语言的关键特性,同时也是JAVA各类框架底层实现的灵魂。获取Class类对象的三种方法:Clas
- 反射获取实体类的get和set 组装成赋值方式 可以提高开发
java_lilin
javaJAVA
publicstaticStringgetsetmethod(Classobjectsrc,Stringnamesrc,Stringnamesource)throwsException{Objectqian=objectsrc.newInstance();Methodme[]=objectsrc.getMethods();for(Methodf:me){if(f.getName().indexOf
- 9.3 Java反射reflect(❤❤❤❤)
与海boy
Java工程师(后端开发)javapython开发语言
9.3Java反射❤❤❤❤1.反射及其应用1.1简介1.2实现1.3优势2.4个核心类(❤❤❤❤)2.1Class类2.2newInstance方法:创建对象2.3getConstructor:指定有参构造方法2.4Method方法类:访问对象的方法2.5Field成员变量类:访问对象的属性2.6getDeclared前缀系列方法3.项目应用3.1动态代理
- mini-spring-Bean含参实例化(三)
没脑袋的喵
springspringjavaservlet
上一节,bean是在AbstractAutowireCapableBeanFactory.doCreateBean方法中用beanClass.newInstance()来实例化,仅适用于bean有无参构造函数的情况。本节考虑含参的bean的实例化考虑两个问题一、串流程从哪合理的把构造函数的入参信息传递到实例化操作里BeanFactory中添加ObjectgetBean(Stringname,Obj
- caused by: java.lang.outofmemory_hadoop运行java.lang.OutOfMemoryError:java heap space错误。
weixin_39662834
causedby:
在map任务中,导入了99M的文件,运行时出现下面的问题:java.lang.RuntimeException:java.lang.reflect.InvocationTargetExceptionatorg.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:81)atorg.apache.hadoop.io.W
- javassist动态生成类步骤
知识冷不丁进了脑子
java开发语言
步骤:一、获取类池(这个类池就是给我们生成class的)二、制造类三、制造方法四、将方法添加到类中五、在内存中生成class六、类加载,创建对象【newInstance()方法】获取类中方法并执行测试样例:@TestpublicvoidtestGenerateFistClass()throwsException{//获取类池,这个类池就是给我们生成class的ClassPoolpool=Class
- java使用cxf调用webservice
落华X
javajava
一、引入cxforg.apache.cxfcxf-spring-boot-starter-jaxws3.2.1org.apache.cxfcxf-rt-transports-http3.2.1二、使用try{DynamicClientFactorydynamicClientFactory=DynamicClientFactory.newInstance();Clientclient=dynamic
- java创建对象的四种方式
云梦君
java开发语言
1.使用new关键字这是创建对象最常见的方式。通过使用new关键字,可以调用类的构造器(构造函数)来创建类的一个新实例。MyClassobj=newMyClass();在这里,MyClass()调用的是类MyClass的构造器。2.使用Class类的newInstance()方法Class类提供了newInstance()方法,可以通过这个方法来创建类的实例。使用这种方式需要有无参构造函数。MyC
- JDBC中的的DriverManager.getConnection(URL)中的参数的URL
另一个自己
Java数据库
1,Oracle8/8i/9i数据库(thin模式)Class.forName(“oracle.jdbc.driver.OracleDriver”)。newInstance();Stringurl=“jdbc:oracle:thin:@localhost:1521:orcl”;//orcl为数据库的SIDStringuser=“test”;Stringpassword=“test”;Connect
- W3C进阶Xml篇
有知识的山巅
java进阶综合提升java
//将a.xml元素复制到b.xmlXPathxpath=XPathFactory.newInstance().newXPath();Nodeh1NodeFromHtml2=(Node)xpath.evaluate("//h1",doc2AsDom,XPathConstants.NODE);NodebodyNodeInHtml1=(Node)xpath.evaluate("//body",doc1
- 关于魅族手机无法获取Surface的问题
Edward.W
scrcpyADB系列androidandroidstudioandroid-studio
近期在app_process运行进程的问题比较多。这边有一个小问题,就是对于魅族手机无法getSuface的问题。具体出问题的代码:ImageReadermImageReader=ImageReader.newInstance(width,height,PixelFormat.RGBA_8888,2);Surfacesurface=mImageReader.getSurface();System.
- Spring Bean的作用域和生命周期
Wan8017
springjava
Springbean五种作用域(bean放哪了)singleton:单例,ioc容器prototype:多例,newInstance()request:request域session:session域application:servletContext域Springbean生命周期单例:[容器启动]---->构造方法(实例化)---->set方法(注入)---->init方法(初始化)---->[
- java基础-反射
没脑袋的喵
Java基础java开发语言
反射(reflection)机制Properties可以读写配置文件基本概念1.什么是反射机制2.反射机制原理图反射流程1.加载类,返回Class类型的对象clsClasscls=Class.forname(classfullpath)2.通过cls得到对应的类(被反射的)的对象实例Cato=cls.newINstance()3.通过cls得到对应的类(被反射的)的实例的方法对象(在反射中,可以把
- Spring学习之——bean的作用范围
shimmer008
Springspring学习java
bean的作用范围概述在Spring中,bean作用域用于确定bean实例应该从哪种类型的Spring容器中返回给调用者。五种作用域作用域说明singleton默认值,Bean以单例方式存在springIoC容器prototype每次从容器中调用Bean时都返回一个新的实例,相当于执行newInstance()requestWEB项目中,Spring创建一个Bean的对象,将对象存入到reques
- Spring-core简单总结
钱文博
分类:JavaWeb框架开发技术理解作者:StephenSpring容器功能:创建并用来管理Bean对象的容器创建:使用了反射机制,创建Bean的实例(通过Class.forName("").newInstance())容器的设计:使用了工厂模式(BeanFactory)管理和实现模式:容器中的每一个Bean对象,Spring容器默认按照单例方式进行管理,可以通过设置属性进行设置为每一次都是不同对
- bean的作用范围
三月37
java开发语言
目录1.概述2.五种作用域1.概述在Spring中,bean作用域用于确定bean实例应该从哪种类型的Spring容器中返回给调用者。2.五种作用域目前SpringBean的作用域或者说范围主要有五种:作用域说明singleton默认值,Bean以单例方式存在springIoC容器prototype每次从容器中调用Bean时都返回一个新的实例,相当于执行newInstance()requestWE
- 八股文个人整理
keep one's resolveY
面试八股文java后端分布式数据库
h1.1开始1.2内容准备一、熟练使用开发构建管理工具Idea、Eclipse、Git、svn、maven、tomcat等Git提交代码的过程:二、良好的编码习惯,Java基础扎实,熟悉多线程,io操作,了解jvm、反射、泛型、Java创建对象得五种方式?(1)new关键字(2)Class.newInstance(3)Constructor.newInstance(4)Clone方法(5)反序列化
- “你基础不太行啊”
白日日白
JavaSEjava开发语言
一、创建对象的五种方式直接new关键字反序列化clone反射class.newInstance反射class.getConstructor1.1、直接new关键字1.2、Clone(需要实现Cloneable接口)1.3、反射class.newInstance1.4、反射class.getConstructor1.5、反序列化二、==与equals==:对比的是栈中的值,对于基础数据类型比较的是变
- Java连接Mysql报错:javax.net.ssl.SSLException: Received fatal alert: internal_error
撸码海哥
采坑记录javamysql
大致报错日志如下:Thelastpacketsuccessfullyreceivedfromtheserverwas11millisecondsago.Thelastpacketsentsuccessfullytotheserverwas10millisecondsago.atsun.reflect.GeneratedConstructorAccessor275.newInstance(Unkno
- Java反射机制详解
Jan丶X
javaconstructorclassmethodsobjectinterface
首先,我们在开始前提出一个问题:1.在运行时,对于一个java类,能否知道属性和方法;能否去调用它的任意方法?答案是肯定的。本节所有目录如下:什么是JAVA的反射机制JDK中提供的ReflectionAPIJAVA反射机制提供了什么功能获取类的Class对象获取类的Fields获取类的Method获取类的Constructor新建类的实例Class的函数newInstance通过Construct
- 创建对象的五种方式(简单且高效)
后端漫漫
12万字Java面经总结Javajava
new关键字Personperson1=newPerson();Personperson2=newPerson("fsx",18);Class类的newInstance()使用的是类的public的无参构造器Personperson=Person.class.newInstance();System.out.println(person);//Person{name='null',age=null
- tomcat基础与部署发布
暗黑小菠萝
Tomcat java web
从51cto搬家了,以后会更新在这里方便自己查看。
做项目一直用tomcat,都是配置到eclipse中使用,这几天有时间整理一下使用心得,有一些自己配置遇到的细节问题。
Tomcat:一个Servlets和JSP页面的容器,以提供网站服务。
一、Tomcat安装
安装方式:①运行.exe安装包
&n
- 网站架构发展的过程
ayaoxinchao
数据库应用服务器网站架构
1.初始阶段网站架构:应用程序、数据库、文件等资源在同一个服务器上
2.应用服务和数据服务分离:应用服务器、数据库服务器、文件服务器
3.使用缓存改善网站性能:为应用服务器提供本地缓存,但受限于应用服务器的内存容量,可以使用专门的缓存服务器,提供分布式缓存服务器架构
4.使用应用服务器集群改善网站的并发处理能力:使用负载均衡调度服务器,将来自客户端浏览器的访问请求分发到应用服务器集群中的任何
- [信息与安全]数据库的备份问题
comsci
数据库
如果你们建设的信息系统是采用中心-分支的模式,那么这里有一个问题
如果你的数据来自中心数据库,那么中心数据库如果出现故障,你的分支机构的数据如何保证安全呢?
是否应该在这种信息系统结构的基础上进行改造,容许分支机构的信息系统也备份一个中心数据库的文件呢?
&n
- 使用maven tomcat plugin插件debug关联源代码
商人shang
mavendebug查看源码tomcat-plugin
*首先需要配置好'''maven-tomcat7-plugin''',参见[[Maven开发Web项目]]的'''Tomcat'''部分。
*配置好后,在[[Eclipse]]中打开'''Debug Configurations'''界面,在'''Maven Build'''项下新建当前工程的调试。在'''Main'''选项卡中点击'''Browse Workspace...'''选择需要开发的
- 大访问量高并发
oloz
大访问量高并发
大访问量高并发的网站主要压力还是在于数据库的操作上,尽量避免频繁的请求数据库。下面简
要列出几点解决方案:
01、优化你的代码和查询语句,合理使用索引
02、使用缓存技术例如memcache、ecache将不经常变化的数据放入缓存之中
03、采用服务器集群、负载均衡分担大访问量高并发压力
04、数据读写分离
05、合理选用框架,合理架构(推荐分布式架构)。
- cache 服务器
小猪猪08
cache
Cache 即高速缓存.那么cache是怎么样提高系统性能与运行速度呢?是不是在任何情况下用cache都能提高性能?是不是cache用的越多就越好呢?我在近期开发的项目中有所体会,写下来当作总结也希望能跟大家一起探讨探讨,有错误的地方希望大家批评指正。
1.Cache 是怎么样工作的?
Cache 是分配在服务器上
- mysql存储过程
香水浓
mysql
Description:插入大量测试数据
use xmpl;
drop procedure if exists mockup_test_data_sp;
create procedure mockup_test_data_sp(
in number_of_records int
)
begin
declare cnt int;
declare name varch
- CSS的class、id、css文件名的常用命名规则
agevs
JavaScriptUI框架Ajaxcss
CSS的class、id、css文件名的常用命名规则
(一)常用的CSS命名规则
头:header
内容:content/container
尾:footer
导航:nav
侧栏:sidebar
栏目:column
页面外围控制整体布局宽度:wrapper
左右中:left right
- 全局数据源
AILIKES
javatomcatmysqljdbcJNDI
实验目的:为了研究两个项目同时访问一个全局数据源的时候是创建了一个数据源对象,还是创建了两个数据源对象。
1:将diuid和mysql驱动包(druid-1.0.2.jar和mysql-connector-java-5.1.15.jar)copy至%TOMCAT_HOME%/lib下;2:配置数据源,将JNDI在%TOMCAT_HOME%/conf/context.xml中配置好,格式如下:&l
- MYSQL的随机查询的实现方法
baalwolf
mysql
MYSQL的随机抽取实现方法。举个例子,要从tablename表中随机提取一条记录,大家一般的写法就是:SELECT * FROM tablename ORDER BY RAND() LIMIT 1。但是,后来我查了一下MYSQL的官方手册,里面针对RAND()的提示大概意思就是,在ORDER BY从句里面不能使用RAND()函数,因为这样会导致数据列被多次扫描。但是在MYSQL 3.23版本中,
- JAVA的getBytes()方法
bijian1013
javaeclipseunixOS
在Java中,String的getBytes()方法是得到一个操作系统默认的编码格式的字节数组。这个表示在不同OS下,返回的东西不一样!
String.getBytes(String decode)方法会根据指定的decode编码返回某字符串在该编码下的byte数组表示,如:
byte[] b_gbk = "
- AngularJS中操作Cookies
bijian1013
JavaScriptAngularJSCookies
如果你的应用足够大、足够复杂,那么你很快就会遇到这样一咱种情况:你需要在客户端存储一些状态信息,这些状态信息是跨session(会话)的。你可能还记得利用document.cookie接口直接操作纯文本cookie的痛苦经历。
幸运的是,这种方式已经一去不复返了,在所有现代浏览器中几乎
- [Maven学习笔记五]Maven聚合和继承特性
bit1129
maven
Maven聚合
在实际的项目中,一个项目通常会划分为多个模块,为了说明问题,以用户登陆这个小web应用为例。通常一个web应用分为三个模块:
1. 模型和数据持久化层user-core,
2. 业务逻辑层user-service以
3. web展现层user-web,
user-service依赖于user-core
user-web依赖于user-core和use
- 【JVM七】JVM知识点总结
bit1129
jvm
1. JVM运行模式
1.1 JVM运行时分为-server和-client两种模式,在32位机器上只有client模式的JVM。通常,64位的JVM默认都是使用server模式,因为server模式的JVM虽然启动慢点,但是,在运行过程,JVM会尽可能的进行优化
1.2 JVM分为三种字节码解释执行方式:mixed mode, interpret mode以及compiler
- linux下查看nginx、apache、mysql、php的编译参数
ronin47
在linux平台下的应用,最流行的莫过于nginx、apache、mysql、php几个。而这几个常用的应用,在手工编译完以后,在其他一些情况下(如:新增模块),往往想要查看当初都使用了那些参数进行的编译。这时候就可以利用以下方法查看。
1、nginx
[root@361way ~]# /App/nginx/sbin/nginx -V
nginx: nginx version: nginx/
- unity中运用Resources.Load的方法?
brotherlamp
unity视频unity资料unity自学unityunity教程
问:unity中运用Resources.Load的方法?
答:Resources.Load是unity本地动态加载资本所用的方法,也即是你想动态加载的时分才用到它,比方枪弹,特效,某些实时替换的图像什么的,主张此文件夹不要放太多东西,在打包的时分,它会独自把里边的一切东西都会集打包到一同,不论里边有没有你用的东西,所以大多数资本应该是自个建文件放置
1、unity实时替换的物体即是依据环境条件
- 线段树-入门
bylijinnan
java算法线段树
/**
* 线段树入门
* 问题:已知线段[2,5] [4,6] [0,7];求点2,4,7分别出现了多少次
* 以下代码建立的线段树用链表来保存,且树的叶子结点类似[i,i]
*
* 参考链接:http://hi.baidu.com/semluhiigubbqvq/item/be736a33a8864789f4e4ad18
* @author lijinna
- 全选与反选
chicony
全选
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>全选与反选</title>
- vim一些简单记录
chenchao051
vim
mac在/usr/share/vim/vimrc linux在/etc/vimrc
1、问:后退键不能删除数据,不能往后退怎么办?
答:在vimrc中加入set backspace=2
2、问:如何控制tab键的缩进?
答:在vimrc中加入set tabstop=4 (任何
- Sublime Text 快捷键
daizj
快捷键sublime
[size=large][/size]Sublime Text快捷键:Ctrl+Shift+P:打开命令面板Ctrl+P:搜索项目中的文件Ctrl+G:跳转到第几行Ctrl+W:关闭当前打开文件Ctrl+Shift+W:关闭所有打开文件Ctrl+Shift+V:粘贴并格式化Ctrl+D:选择单词,重复可增加选择下一个相同的单词Ctrl+L:选择行,重复可依次增加选择下一行Ctrl+Shift+L:
- php 引用(&)详解
dcj3sjt126com
PHP
在PHP 中引用的意思是:不同的名字访问同一个变量内容. 与C语言中的指针是有差别的.C语言中的指针里面存储的是变量的内容在内存中存放的地址 变量的引用 PHP 的引用允许你用两个变量来指向同一个内容 复制代码代码如下:
<?
$a="ABC";
$b =&$a;
echo
- SVN中trunk,branches,tags用法详解
dcj3sjt126com
SVN
Subversion有一个很标准的目录结构,是这样的。比如项目是proj,svn地址为svn://proj/,那么标准的svn布局是svn://proj/|+-trunk+-branches+-tags这是一个标准的布局,trunk为主开发目录,branches为分支开发目录,tags为tag存档目录(不允许修改)。但是具体这几个目录应该如何使用,svn并没有明确的规范,更多的还是用户自己的习惯。
- 对软件设计的思考
e200702084
设计模式数据结构算法ssh活动
软件设计的宏观与微观
软件开发是一种高智商的开发活动。一个优秀的软件设计人员不仅要从宏观上把握软件之间的开发,也要从微观上把握软件之间的开发。宏观上,可以应用面向对象设计,采用流行的SSH架构,采用web层,业务逻辑层,持久层分层架构。采用设计模式提供系统的健壮性和可维护性。微观上,对于一个类,甚至方法的调用,从计算机的角度模拟程序的运行情况。了解内存分配,参数传
- 同步、异步、阻塞、非阻塞
geeksun
非阻塞
同步、异步、阻塞、非阻塞这几个概念有时有点混淆,在此文试图解释一下。
同步:发出方法调用后,当没有返回结果,当前线程会一直在等待(阻塞)状态。
场景:打电话,营业厅窗口办业务、B/S架构的http请求-响应模式。
异步:方法调用后不立即返回结果,调用结果通过状态、通知或回调通知方法调用者或接收者。异步方法调用后,当前线程不会阻塞,会继续执行其他任务。
实现:
- Reverse SSH Tunnel 反向打洞實錄
hongtoushizi
ssh
實際的操作步驟:
# 首先,在客戶那理的機器下指令連回我們自己的 Server,並設定自己 Server 上的 12345 port 會對應到幾器上的 SSH port
ssh -NfR 12345:localhost:22
[email protected]
# 然後在 myhost 的機器上連自己的 12345 port,就可以連回在客戶那的機器
ssh localhost -p 1
- Hibernate中的缓存
Josh_Persistence
一级缓存Hiberante缓存查询缓存二级缓存
Hibernate中的缓存
一、Hiberante中常见的三大缓存:一级缓存,二级缓存和查询缓存。
Hibernate中提供了两级Cache,第一级别的缓存是Session级别的缓存,它是属于事务范围的缓存。这一级别的缓存是由hibernate管理的,一般情况下无需进行干预;第二级别的缓存是SessionFactory级别的缓存,它是属于进程范围或群集范围的缓存。这一级别的缓存
- 对象关系行为模式之延迟加载
home198979
PHP架构延迟加载
形象化设计模式实战 HELLO!架构
一、概念
Lazy Load:一个对象,它虽然不包含所需要的所有数据,但是知道怎么获取这些数据。
延迟加载貌似很简单,就是在数据需要时再从数据库获取,减少数据库的消耗。但这其中还是有不少技巧的。
二、实现延迟加载
实现Lazy Load主要有四种方法:延迟初始化、虚
- xml 验证
pengfeicao521
xmlxml解析
有些字符,xml不能识别,用jdom或者dom4j解析的时候就报错
public static void testPattern() {
// 含有非法字符的串
String str = "Jamey친ÑԂ
- div设置半透明效果
spjich
css半透明
为div设置如下样式:
div{filter:alpha(Opacity=80);-moz-opacity:0.5;opacity: 0.5;}
说明:
1、filter:对win IE设置半透明滤镜效果,filter:alpha(Opacity=80)代表该对象80%半透明,火狐浏览器不认2、-moz-opaci
- 你真的了解单例模式么?
w574240966
java单例设计模式jvm
单例模式,很多初学者认为单例模式很简单,并且认为自己已经掌握了这种设计模式。但事实上,你真的了解单例模式了么。
一,单例模式的5中写法。(回字的四种写法,哈哈。)
1,懒汉式
(1)线程不安全的懒汉式
public cla