- netty-简易聊天
2401_84046645
程序员java开发语言
publicvoidsend(Stringtext){channel.writeAndFlush(Unpooled.copiedBuffer(text.getBytes()));}publicvoidcloseConnect(){send(“bye”);channel.close();}}classMyHandlerextendsChannelInboundHandlerAdapter{@Over
- Netty权威指南:Netty总结-高性能与可靠性
Ty_1106
Nettyjava网络rpc
第二十二章高性能之道22.1RPC调用性能模型分析22.1.1传统RPC调用性能差三宗罪:网络传输采用同步阻塞I/O导致经常性阻塞序列化性能差线程模型问题22.1.2I/O通信性能三要素传输:BIO、NIO或者AIO协议:HTTP公有协议,内部私有协议线程:数据报如何读取,Reactor线程模型22.2Netty高性能之道22.2.1异步非阻塞通信I/O多路复用技术22.2.2高效的Reactor
- netty4源码阅读与分析---netty线程模型
红尘之一骑
javaNIOnetty源码阅读与分析
本文主要说下我自己对netty线程模型的理解,以及这样的线程模型的好处。通俗的来讲,netty的线程模型描述的就是老板和员工的故事。老板(通常情况下是一个老板)负责接活,与客户沟通,协调(netty的accept),谈成后(通道建立),他需要从员工中选出一位员工来负责处理后续具体的事宜(worker线程,这里我们有16位员工,编号1-16),员工做事时按照任务的先后顺序进行处理,这样可以避免错乱,
- 深度长文解析SpringWebFlux响应式框架15个核心组件源码
快乐非自愿
javaspring
SpringWebFlux介绍SpringWebFlux是SpringFramework5.0版本引入的一个响应式Web框架,它与SpringMVC并存,提供了一种全新的编程范式,支持异步非阻塞的Web应用开发。WebFlux完全基于响应式编程模型,支持ReactiveStreams规范,可以在诸如Netty、Undertow以及Servlet3.1+容器上运行。WebFlux的核心控制器是Dis
- Java网络编程:IO,NIO与Netty
坚持是一种态度
javajava网络编程NettyJavaIONIONIO与Netty
Java网络编程:IO,NIO与NettyJava网络编程:IO,NIO与NettyJavaI/O相关概念同步与异步阻塞与非阻塞OIONIOAIOreactor模型proactor模型JavaIO应用场景Netty简介NIO与Netty生产使用Java网络编程:IO,NIO与Netty新公司新项目,项目需要在硬件和软件平台进行信息传递,具体来说使用Netty。硬件和软件使用socket连接,硬件作
- java reactor模式例子_Netty Reactor模式实现原理详解
weixin_39923623
javareactor模式例子
在前面的文章中(Reactor模型详解),我们讲解了Reactor模式的各种演变形式,本文主要讲解的则是Netty是如何实现Reactor模式的。这里关于Netty实现的Reactor模式,需要说明的是,其实现的模式如下图所示:对于Netty使用的Reactor模式,其主要特点如下:使用一个线程作为mainReactor,专门用于监听客户端的连接事件,当获取到事件之后就将该事件交由Acceptor
- Netty实战二-实现UDP的单播和广播(1)
2401_84048671
程序员udp网络协议网络
publicclassAnswerHandlerextendsSimpleChannelInboundHandler{/应答的具体内容从常量字符串数组中取得,由nextQuote方法随机获取/privatestaticfinalString[]DICTIONARY={“一个男生暗恋一个女生很久了。一天自习课上,男生偷偷的传了小纸条给女生,上面写着“其实我注意你很久了”。不一会儿,女生传了另一张纸条
- netty源码解读三(NioEventLoop)
orcharddd_real
nettyjavanetty
NioEventLoop初始化EventExecutor类型的数组数组大小默认为cpu数量的两倍,遍历数组,通过newNioEventLoop(xxx)往数组中添加元素,NioEventLoop继承了EventExecutor;每次需要线程时,执行chooser的next方法从数组中取出一个线程;关键代码打开netty源码,找到example包下的EchoService类,追溯创建boss线程组和
- Netty源码分析:NioEventLoopGroup
HelloWorld_EE
netty源码分析源代码nettyEventLoop
Netty源码分析:NioEventLoopGroup在工作之余,看到自己公司的超哥(俞超)关于Netty的系列博文,讲解的很好,因此,自己在学习之余也跟了下源代码,来了解Netty,也做了相关的笔记,将形成系列博文,这是第一篇。超哥的博文地址在这里:http://www.jianshu.com/p/c5068caab217Netty版本:4.0.23.Final借用超哥的例子,一般服务端的代码如
- netty-NioServerSocketChannel和boss NioEventLoopGroup 如何建立关系的
一个人的想法
javanetty
一、EventLoopGroupbossGroup=newNioEventLoopGroup();EventLoopGroupworkerGroup=newNioEventLoopGroup();1、boss或者workerNioEventLoopGroup初始化完成了一个NioEventLoop数组(默认机器核数的2倍)所有NioEventLoop持有了同一个Executor调用execute时
- 经验笔记:RPC与高性能NIO框架
漆黑的莫莫
计算机网络笔记rpcnio
RPC与高性能NIO框架的经验笔记引言随着互联网技术的发展,分布式系统逐渐成为了现代软件架构的标准之一。在这种架构中,服务之间的通信变得尤为关键,而RPC(远程过程调用)作为一种服务间通信的方式,因其简便的使用方式和高效的性能表现而受到了广泛的关注。在实现RPC的过程中,选择合适的网络通信框架至关重要,尤其是那些基于NIO(非阻塞I/O)的高性能框架,如Netty。本文将首先介绍RPC的概念及其在
- 基础学习之——Netty
北欧人写代码
学习网络服务器
Netty是一个基于Java的网络通信框架,提供了一种简单、高效、可扩展的方式来开发网络服务器和客户端应用程序。Netty的设计目标是提供一种统一的异步编程模型,使得开发者能够轻松地编写可维护和可重用的代码。Netty的核心组件包括:Channel:网络通信的通道,可以用于读取、写入和关闭操作。EventLoop:负责处理I/O事件,包括接收、发送和处理数据。ChannelHandler:用于处理
- Springboot-websocket实现及底层原理
No.Ada
深入项目底层原理springbootwebsocket后端
引入依赖SpringBoot中的WebSocket依赖于SpringWebFlux模块,使用了ReactorNetty库来实现底层的WebSocket通信。org.springframework.bootspring-boot-starter-websocket服务端配置/***WebSocket配置类*/@ConfigurationpublicclassWebSocketConfig{/***注
- 【Netty】实战:基于WebSocket的聊天室
马丁的代码日记
netty聊天室网络websockethttp
本文将使用Netty快速实现一个聊天室应用,该应用基于WebSocket协议,用户可以在浏览器内聊天。实现过程很简单,就几步。一、处理Http请求packagecn.md.netty.websocket.groupchat;importio.netty.channel.*;importio.netty.handler.codec.http.*;importio.netty.handler.ssl.
- 精通 Spring Cloud Feign:从理论到实战的通信优化之路
TopicOnline
springcloud
一、服务间调用的几种方式使用SpringCloud开发微服务时,在服务消费者调用服务提供者时,底层通过HTTPClient的方式访问。但实际上在服务调用时,有主要以下来实现:使用JDK原生的URLConnection;Apache提供的HTTPClient;Netty提供的异步HTTPClient;Spring提供的RestTemplate。SpringCloud的SpringCloudOpenF
- Dubbo与Netty
蹩脚的小三
CodecCodecSupportAbstractCodecTransportCodecCodecAdapterDispacherChannelHandlersDispatcherAllDispatcherAllChannelHandlerChannelEventRunnableWrappedChannelHandlerChannelHandlerChannelHandlerAdapterChan
- netty开发模拟qq斗地主
平平无奇的Coding Peasant
nettyqq斗地主
为什么要搞这样一个项目满足自己的java网络多线程编程的欲望!因为之前一直都是搞web开发,服务器和客户端数据交流人家web服务器早就给你搞好了,比如tomcat,jetty...等等,其实之前脑子里就有想过--是否可以自己开发一个简单的类似tomcat的web服务器,这样做了的话,至少知道其实web开发是建立在网络多线程web服务器之上否则web开发无从谈起!市面上的书籍和互联网上的电子教材以及
- Netty 知识目录
王小工
javajava
Netty知识结构NettyBootstrap/ServerBootstrapNettyEventLoopGroup/EventLoopNettyChannelNettyChannelPipeline/ChannelHandlerNettyByteBufNettyTCPNettyUDPNettyHTTPNettyWebsocketNettySSL/TLS
- elasticsearch简单介绍
甜美河边的钓鱼人
elasticsearch
1、elasticsearch简单介绍elasticsearch是基于操作文档的搜索引擎,里面使用了netty,luncen相关技术。它可以用作站内搜索,也可以结合Logstash,kibana等技术进行日志收集分析,使用聚合技术可以进行各种数据的聚合,并且和kibana一起展示条形图,饼图,map地理分布等功能。1.1、elasticsearch的安装因为是练习用的,所以我直接使用windows
- Netty UDP
王小工
javaudp网络协议网络javanio
Netty在UDP(用户数据报协议,UserDatagramProtocol)通信中的应用非常广泛,特别是在对实时性要求较高、对数据准确性要求相对较低的场景中,如视频传输、语音通信等。以下是对Netty在UDP通信中的详细解析:一、UDP协议简介UDP是一种无连接的协议,它并不在通信双方之间建立连接,而是直接将数据包从发送端发送到接收端。UDP不保证数据包的可靠传输,也不保证数据包的顺序,因此其传
- 【四、使用Netty编写UDP应用】
ThinkLess404
Netty网络编程udp网络协议网络
编写UDP应用目标创建UDPServer创建ServerHandler创建UDP客户端创建客户端的Handler目标之前的章节我们学习了编码服务端,使用TCP通信,本章我们学习如何使用Netty构建一个UDP应用。创建UDPServerpackagecom.coman404.base;importcom.coman404.base.handler.UDPServerHandler;importio
- linux部署jar项目报错_linux jar 服务
国家级做梦冠军
linux部署jar项目报错
关于linuxjar服务的搜索结果问题linux重启netty服务一些问题,请大神进linux上部署netty架构的服务时我一般启动的时候用下面脚本nohupjava-jarxxx-xxx.jarstart80808888&关闭的时候杀进程就可以了。今天部署的时候启动服务就报userBind,于是我查...杨冬芳2019-12-0120:26:501161浏览量回答数0问题Linux下Tomcat
- Spring Cloud全解析:网关之GateWay简介
拾光师
springcloudjava
GateWay简介由于zuul升级为zuul2时,netflix公司内部出现了分歧,所以springcloud自己研发了一套网关gateway,提供一种简单有效的方式来对API进行路由,以及提供一些强大的过滤器功能,如:熔断、限流、重试等,基于WebFlux框架实现的,底层使用了高性能的Reactor模式通信框架Netty特性基于spring5和springboot2构建动态路由:能够匹配任何请求
- Netty+WebSocket实现高并发网络编程
Sunny_yiyi
Java精英阶级JavaWebSocket网络websocket网络协议
我们来实现一个Netty+WebSocket集成案例,由于Netty+WebSocket集成代码比较麻烦,我们可以利用目前开源的项目netty-websocket-spring-boot-starter轻松实现Netty和WebSocket的集成。我们搭建一个项目,项目叫seckill-message,用于处理通知用户抢单状态。1)pom.xmlorg.yeauty</groupId
- Spring Boot 一个极简且完整的后台框架
搬砖养女人
数据库架构javaspringsqltomcat
一个完整的极简后台框架,方便做小项目的时候可以快速开发。这里面多贴图片和代码,做个参考吧,代码可以下载下来自己看看,里面这套后台模板不错,喜欢的拿去。先放几张图imageimageimage项目介绍SpringBoot,实现了一个极简单的后台框架image小编提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redi
- netty编程
chenjunxu
需要导包:netty-all-4.1.25.Final或者导入依赖:io.nettynetty-all4.1.25.Final定义一个server类:publicclassHelloServer{publicstaticvoidmain(String[]args){//定义一对线程组//主线程组,用于接受客户端的连接,但是不做任何处理,跟老板一样,不做事EventLoopGroupbossGrou
- Simple RPC - 05 从零开始设计一个客户端(下)_ 依赖倒置和SPI
小小工匠
【SimpleRPC】rpc网络协议网络
文章目录Pre概述依赖倒置原则与解耦设计与实现1.定义接口来隔离调用方与实现类2.实现类`DynamicStubFactory`3.调用方与实现类的解耦依赖注入与SPI的解耦依赖注入SPI(ServiceProviderInterface)总结PreSimpleRPC-01框架原理及总体架构初探SimpleRPC-02通用高性能序列化和反序列化设计与实现SimpleRPC-03借助Netty实现异
- 使用Netty实现 WebSocket至Socket的消息转发服务
Leon-aHandler
websocket服务器网络协议nettyspringboot
业务需求场景:通过网页发送指令至硬件设备,并在连接过程中能够接收来自硬件设备的实时参数信息中转服务器逻辑:服务器内实现了一个websocket服务端和一个socket客户端,设置全局保存的ChannelGroup进行消息的转发。项目框架使用的是Springboot代码地址:https://github.com/Leon-aHandler/Netty-relayDemo
- Netty Websocket
王小工
javawebsocketjavanio
一、WebSocket协议概述WebSocket是一种在单个TCP连接上进行全双工通信的协议。它允许服务端主动向客户端推送数据,从而实现了实时通信。WebSocket建立在HTTP之上,但与HTTP的轮询(Polling)和长轮询(LongPolling)相比,WebSocket只需一次握手,即可在客户端和服务器之间建立持久的连接,并通过这个连接进行双向数据传输。二、Netty框架简介Netty是
- Netty 实现 WebSocket 协议
最业余的程序猿
nettywebsocket网络协议网络
要使用Netty框架实现WebSocket服务端与客户端通信,你需要按照以下步骤进行:1、添加依赖首先,在你的项目中引入Netty和其WebSocket支持库的依赖。如果你使用Maven构建项目,可以在pom.xml文件中添加相应的依赖项。Maven:io.nettynetty-all4.1.77.Finalorg.springframework.bootspring-boot-starter-w
- 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