- Android MVVM 架构应用实现
2401_84148955
程序员android架构
//modulesvallist=listOf(myModule,repoModel)modules(list)}}}//第一步://定义一个myModule作为ViewmodelvalmyModule=module{viewModel{HomeViewModel(get())}}//定义一个repoModulevalrepoModel=module{single{BmobRepository()
- 深入浅出Flutter(一)
小时候很拽的样子
Flutter简介Flutter是Google推出并开源的移动应用开发框架,主打跨平台、高保真、高性能。开发者可以通过Dart语言开发App,一套代码同时运行在iOS和Android平台。Flutter提供了丰富的组件、接口,开发者可以很快地为Flutter添加Native扩展。由于背靠google,技术上支撑是足够的,且已经支持iOS、Android、Web、Windows、macOS、Linu
- android和ios混合开发工具,Flutter与已有iOS工程混合开发与脚本配置
乐居买房
运行一个原生的Flutter工程(也就是纯Flutter)非常简便,不过现在Flutter属于试水阶段,要是想在商业app中使用Flutter,目前基本上是将Flutter的页面嵌入到目前先有的iOS或者安卓工程,目前讲混合开发的文章有很多:不过这些文章大多讲的是安卓和flutter混合开发的,没有iOS和Flutter混合开发的比较详细的步骤实操,上周试了一下iOS和Flutter混合,有一些坑
- 开源GIS与Vue结合
桃子味的白开水
相关插件安装推荐使用npm的方式安装,它能更好地和webpack打包工具配合使用。¶1、ol-----OpenLayers地图操作基础包
[email protected]¶2、ol-ext-----OpenLayers扩展包npminstallol-ext¶3、proj4------前端投影转换包npminstallproj4¶4、turf------前端空间分析包npminstall@tur
- Android Camera HAL1&HAL3的区别
嵌入式_笔记
Androidandroid
1.HAL1概述由于相机HAL1已弃用,建议在搭载Android9或更高版本的设备上使用相机HAL3.相机子系统的第1个版本被设计为具有高级控件和以下三种运行模式的黑盒子:预览视频录制静态拍摄三种模式具有略有不同又相互重叠的功能。这样就难以实现介于其中两种运行模式之间的新功能,例如连拍模式由于很多设备仍然依赖相机HAL1,因此Android7.0继续支持该模块。此外,Android相机服务还支持同
- Android Camera--hw_get_module获取camx模块接口
嵌入式_笔记
Androidandroid
我们知道,google为了保护硬件厂商的信息,在Android中添加了一层,也就是大名鼎鼎的HAL层。在看HAL的编写方法的过程中,会发现整个模块貌似没有一个入口。一般说来模块都要有个入口,比如应用程序有main函数,可以为加载器进行加载执行,dll文件有dllmain,而对于我们自己写的动态链接库,我们可以对库中导出的任何符号进行调用。问题来了,Android中的HAL是比较具有通用性的,需要上
- Android Camera API和HAL版本对应关系
上电失败
Android_Camera
AndroidCameraAPI和HAL版本对应关系前言 Android在版本更新和迭代过程中,Camera相关代码也经历了几个版本的更新,主要表现为CameraHAL版本更新(HAL1->HAL2->HAL3),CameraAPI版本更新(CameraAPI1->CameraAPI2),由于Android版本是向后兼容的,所以为了解决兼容问题,势必要做一些特殊的处理来保证不同版本调用问题,本文
- Android Camera原理之camx hal架构_libcamhal
2401_85039631
android架构
libcamxncs\libstripingLOCAL_WHOLE_STATIC_LIBRARIES:=libcamxdspstreamerlibcamxhwlbpslibcamxgeneratedlibcamxhallibcamxhalutilslibcamxhwlfdlibcamxhwlifelibcamxhwlipelibcamxhwliqmodulelibcamxswlfdmanagerl
- 区分PC端还是移动端
praycis
varos=function(){varua=navigator.userAgent,isWindowsPhone=/(?:WindowsPhone)/.test(ua),isSymbian=/(?:SymbianOS)/.test(ua)||isWindowsPhone,isAndroid=/(?:Android)/.test(ua),isFireFox=/(?:Firefox)/.test(u
- 小米note 9 4GV12.0.50 深度精简系统内置APP
IT佳佳
安卓
echo====================打印服务==================adbshellpmuninstall--user0com.android.printspoolerecho====================HTML查看==================adbshellpmuninstall--user0com.android.htmlviewerecho====
- Jenkins 通过 Version Number Plugin 自动生成和管理构建的版本号
让梦想疯狂
Jenkinsjenkins
步骤1:安装VersionNumberPlugin登录Jenkins的管理界面。进入“ManageJenkins”->“ManagePlugins”。在“Available”选项卡中搜索“VersionNumberPlugin”。选中并安装插件,完成后可能需要重启Jenkins。步骤2:配置版本号生成打开项目配置页面。在下方找到“BuildEnvironment”,勾选“Createaformat
- SublimeText3 + Markdown + 实时预览
TomGui
SublimeText3是一款给力的文本编辑器,通过安装插件可以编辑Markdown文本,在编辑Markdown文本的同时可以实时预览编辑效果。安装准备:找到菜单栏:Preferences→PackageControl→PackageControl:InstallPackage;没有找到PackageControl,那么点击PackageControl安装吧,安装完重启Sublime。安装过程:需
- unity打包android工程文件,Unity2018使用Gradle打包Android
Zz 911
https://docs.unity3d.com/2018.4/Documentation/Manual/android-gradle-overview.html所用版本unity2018.4.19打包流程:使用unity的gradle导出工程,在导出的工程中添加androidstudio生成的库工程以及做其他的设置,使用gradle打包最终的apk。下面是在这个过程中遇到的一些问题进行记录。1.
- 【Unity】安卓打包失败Exception in thread “main“ java.lang.UnsupportedClassVersionError
yogurt=b
Unityunityandroid游戏引擎
Exceptioninthread“main”java.lang.UnsupportedClassVersionError:com/android/sdklib/tool/sdkmanager/SdkManagerClihasbeencompiledbyamorerecentversionoftheJavaRuntime(classfileversion61.0),thisversionofthe
- Android应用开发架构之MVI:原理、流程与实战指南
小城哇哇
前言在现代的Android应用开发中,构建可维护、可扩展且具备响应式特性的架构变得越来越重要。在本文中,我们将介绍一种新颖的架构模式:MVI(Model-View-Intent)。我们将详细讲解MVI架构的原理和流程,并通过具体的代码示例进行实战演示。同时,我们还会分享一些在实际工作中的经验和解决的问题。此外,我们将与MVVM和MVP架构进行对比,探讨MVI架构的优点和如何弥补其缺点。一:MVI架
- Unity安卓Gradle打包的一些报错
Comthr
androidunity
先是出现了个关于gradle工具的"android.enableR8=false"的错误,说是gradle在5.0以上就不支持对该参数的修改(改成true或其他也是报错),解决:直接找到对应编辑器下的,例:2021.3.26f1c1\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\GradleTemplates下的gradleTemplate.pro
- jenkins安装 sshCommand
iteye_10392
jenkinsjenkinsservletjava
在Jenkins中安装SSH插件(例如“SSHPipelineSteps”或“SSHIntegrationPlugin”)可以让你通过JenkinsPipeline或自由风格项目执行远程SSH命令或脚本,从而自动化部署过程或其他任务。下面是如何安装“SSHPipelineSteps”插件的步骤:安装SSHPipelineSteps插件登录到Jenkins并进入管理员界面。导航到插件管理页面。通常,
- uniapp安装自动导入插件
小汤猿人类
vue.jsjavascriptecmascript
在日常编写中发现不断的使用import太麻烦,每次使用组件都需要导入,应该如何解决呢可以通过unplugin-auto-import插件来完成主要功能自动导入Vue组件:例如ref,reactive,computed等。支持其他库:可以配置来支持如lodash,dayjs等常用库的自动导入。按需加载:只导入实际使用的部分,减少打包体积。如何使用??以管理员运行HbuilderX打开终端运行以下命令
- 分享一个基于微信小程序的智慧校园服务平台(源码、调试、LW、开题、PPT)
计算机源码社
微信小程序微信小程序毕业设计项目计算机毕设源码计算机毕设毕设选题课程设计源码毕业设计答辩
作者:计算机源码社个人简介:本人八年开发经验,擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等,大家有这一块的问题可以一起交流!学习资料、程序开发、技术解答、文档报告如需要源码,可以扫取文章下方二维码联系咨询Java项目微信小程序项目Android项目Python项目PHP项目ASP.NET项目Node.js项目选题推荐项目实战|基
- Android内核介绍
zhang_li_bin
AndroidAndroidLinuxCC#C++
Android内核介绍Android内核介绍发布时间:2010年4月8日作者:EasyAndroidtags:已经有一些的文章介绍Android内核了,本系列篇将从Linux内核的角度来分析Android的内核,希望给初学者提够有用的信息。本章将简单的介绍Android内核的全貌,起到一个抛砖引玉的作用。从下一篇开始将详细介绍每一个Android内核驱动程序及其作用。Android内核是基于Lin
- 鸿蒙(Harmony)、安卓(Android)、AOSP
xiphi1978
android内核
鸿蒙(Harmony)、安卓(Android)、AOSP华为鸿蒙2.0发布,铺天盖地的关于鸿蒙的文章,有点晕,也不太能看得懂,很惭愧,所以特意查了一下,感觉能够科普到能看懂相关新闻的程度。例如AOSP,GWS,HWS等,和大家分享一下:先说关键概念AOSP是什么我们都知道Andriod是一个开源系统,指的就是AOSP,就是AndroidOpenSoftwareProject的缩写,这个系统是goo
- 4-2.Android Camera 之预览图像编码模板(SurfaceView)
我命由我12345
Android-简化编程androidjavajava-eeandroid-studioandroidstudio视频
一、CameraCamera用于捕获图像和视频在Android开发的早期阶段,Android提供android.hardware.CameraAPI,开发者用它来访问和控制设备的摄像头硬件然而,随着Android系统的发展,从Android5.0(API级别21)开始,Android引入了一个新的Camera2API,以提供更强大和灵活的控制功能二、Camera预览图像1、UtilMyCamera
- aosp编译android 8简书,AOSP内核下载和编译
瀚海酒笑歌
aosp编译android8简书
环境:虚拟机:VM主机OS:Ubuntu14手机型号:Nexus6P源码版本:AOSP8.1.0目标编译内核版本:Linuxversion3.10.73-g309d642下载源码在aosp源码目录执行git同步内核源码://同步源码谷歌镜像gitclonehttps://android.googlesource.com/kernel/msm//同步源码清华镜像#gitclonehttps://ao
- AOSP、AOKP、CM的区别
weixin_30617797
无刷机,不Android。相信大多数机友选择Android手机都看中其高定制性和可玩性,Android系统历经五年的持续更新,流畅性和系统功能愈加完善,除了众多发烧友喜爱的原生Android系统外,HTCSense、三星Touwiz和小米MIUI等定制UI都以优质的用户体验和人性化操作界面,培养了属于自己的粉丝。当然,除了这些手机厂商赖以生存的Officialrom,还存在许多由ROM开发者编译的
- 安卓 AOSP 概览
荒斗罗
android
Android是适用于各种不同规格设备的操作系统。任何人都可以通过Android开源项目(AOSP)查看Android的文档和源代码。您可以使用AOSP为自己的设备创建自定义AndroidOS变体。AOSP的设计可确保不存在一个集中瓶颈,即没有任何行业参与者可一手限制或控制其他参与者的创新。因此,AOSP是一款功能完善且达到生产质量的开发者产品,其源代码可以开放自定义和移植。本部分文档可帮助新AO
- android开源框架
探求之路
android开源okhttp
facebook/frescoFresco是一个在Android应用程序中显示图像的强大系统。壁画负责图像的加载和显示,所以你不必这么做。它将从网络、本地存储或本地资源加载图像,并在图像到达之前显示一个占位符。它有两个级别的缓存:一个在内存中,另一个在内部存储器中。在android4.x及更低版本中,fresco将图像放在android内存的一个特殊区域。这使您的应用程序运行得更快,并且更少地遭受
- 向项目添加组件
鹿小纯0831
在开始之前,我们建议您阅读“架构组件指南”。该指南包含一些适用于所有Android应用程序的有用原则,并展示了如何将架构组件一起使用。架构组件可从Google的Maven存储库获得。要使用它们,请按照下列步骤操作:一、添加GoogleMaven存储库默认情况下,AndroidStudio项目未配置为访问此存储库。要将其添加到项目中,请打开项目的build.gradle文件(而不是应用程序或模块的文
- vscode报错:Elements in iteration expect to have 'v-bind:key' directives.eslint-plugin-vue
月中眠_d56d
今天在查看项目时,发现了一个vscode的报错:image.png报错信息:[vue/require-v-for-key]Elementsiniterationexpecttohave'v-bind:key'directives.eslint-plugin-vue原因是安装了ESLint插件,对vue进行了eslint检查,只需将这个规则检查屏蔽掉即可。具体操作如下:文件-首选项-设置-在搜索框中
- android display 笔记(八)WMS与SurfaceFlinger交互
那天的烟花雨
android笔记交互
在Android系统中由WindowManagerService也就是WMS承担窗口位置的管理。WMSWMS是一个系统服务,运行在systemserver进程,系统启动便开始启动该服务/frameworks/base/services/java/com/android/server/SystemServer.java//Startservices.938try{939t.traceBegin("S
- Android11 MTK 安装apk时进行密码验证
韩家老大
MTKAndroid11源码修改android
1、客户需求客户要求,在安装apk文件时,进行密码验证。apk文件来源包括浏览器下载、内存中、外接SDK中、adb命令安装等。之后在测试过程,又添加了一个限制,输入错误密码超过3次,则放弃本次安装。2、解决路径:frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.javaprivatevoid
- 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