Java方面
A一念執著
软件工程专业毕业,八年互联网研发经验,历任全栈工程师、高级工程师、技术经理、项目经理、高级讲师、架构师、技术总监职务!拥有很强的编码和设计能力,扎实的理论基础和丰富实战经验,熟练互联网分布式应用架构和开发,使用编程语言有C/C++、Python、Java、Kotlin、NodeJS,对Java领域多种开源框架与技术栈有深入研究,擅长项目管理、数据库建模、领域驱动设计、微服务架构和大数据
展开
-
聊聊项目中的MVC分层构架中的一些线程安全问题
变量的线程安全分析成员变量和静态变量是否线程安全? 如果它们没有共享,则线程安全 如果它们被共享了,根据它们的状态是否能够改变,又分两种情况 如果只有读操作,则线程安全 如果有读写操作,则这段代码是临界区,需要考虑线程安全局部变量是否线程安全? 局部变量是线程安全的 但局部变量引用的对象则未必 如果该对象没有逃离方法...原创 2020-04-22 17:40:42 · 325 阅读 · 0 评论 -
浅谈序列化
序列化简介:序列化也叫编解码。JDK的序列化JDK从1.1版本提供了序列化,无需添加额外的类库,只需要POJO实现Serializable接口即可通过ObjectInputStream、ObjectOutputStream读取或写出,但是jdk自身的序列化性能太低,编流太大不适应一些高并发通信场合,并且无法跨语言Protobuf序列化官方文档:https://dev...原创 2020-04-04 14:29:27 · 227 阅读 · 0 评论 -
基于Netty的HTTP服务器的实现
HTTP协议简介Http协议是基于TCP/IP协议基础上用于超文本传输的应用层协议,主要有以下特点:支持C/S模式 无状态 灵活 简单,直接在browser中指定url,携带请求参数或请求消息体就可与服务器通信Http请求消息Http响应消息...原创 2020-04-04 13:32:16 · 264 阅读 · 0 评论 -
基于Netty的Websocket实现
WS协议简介WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。常见WS实现的框架原创 2020-04-03 15:58:56 · 437 阅读 · 0 评论 -
基于Netty的群聊系统
目录需求功能实现思路服务端实现服务器实现类业务处理器:客户端实现客户端启动类:客户端业务处理器:需求功能实现思路服务端实现服务器实现类public class NettyGroupChatServer { private int port; public NettyGroupChatServer(int por...原创 2020-04-03 14:58:52 · 226 阅读 · 0 评论 -
JUC-并发集合类
在大家学习Java基础时都知道,ArrayList、LinkedList、HashMap、HashSet等常用的容器类都是线程不安全的,如果有多个线程访问它们时将会出现意外结果,下边我们讲解如果使用线程安全的集合类。使用java.util包下线程安全的集合类 使用Collections工具类将非线程安全的集合包装成线程安全的集合 使用juc中的并发集合类Vector与Hashtable...原创 2018-08-19 12:39:27 · 863 阅读 · 0 评论 -
多线程-实现一个简单人Echo服务器
实现一个简单的Echo服务器服务器端监听服务端的到来,当监听到客户端到来之后,将创建一个线程去处理客户端Socket 服务器端:public class MultiThreadEchoServer { private static ExecutorService es = Executors.newCachedThreadPool(); /**...原创 2018-08-19 12:04:06 · 674 阅读 · 0 评论 -
《JSF教程》-01 认识JSF
JavaServer Faces (JSF) 是一种用于构建Java Web 应用程序的标准框架(是Java Community Process 规定的JSR-127标准),2004年03月11日JSF初始规范发布.至今最新是JSF2.2版本,引入了基于组件和事件驱动的开发模式,使开发人员可以使用类似于处理传统桌面应用的方式来开发Web应用程序。类似于使用dot net 或Delphi开发,在ja原创 2015-08-28 11:06:06 · 506 阅读 · 0 评论 -
Java之NIO
缓冲区缓冲区(Buffer):在 Java NIO 中负责数据的存取。缓冲区就是数组。用于存储不同数据类型的数据。根据数据类型不同(boolean 除外),提供了相应类型的缓冲区:ByteBuffer, CharBuffer, IntBuffer, LongBuffer, ShortBuffe DoubleBuffer, FloatBuffer, , MappedByteBu...原创 2019-03-06 17:05:21 · 133 阅读 · 0 评论 -
基于NIO的网络编程
TCP编程基于TCP的非阻塞模式UDP编程基于UCP的非阻塞模式范例:服务端:public class UDPServer { public static void main(String[] args){ try ( // 1 获取通道 DatagramChann...原创 2019-03-07 11:39:57 · 187 阅读 · 0 评论 -
第十四章 Hash表
哈希表基础问题提出:https://leetcode-cn.com/problems/first-unique-character-in-a-string/给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。案例:s = "leetcode"返回 0.s = "loveleetcode",返回 2.编码实现:class...原创 2019-05-04 13:44:03 · 181 阅读 · 0 评论 -
第二章 线性表-顺序表
提出问题顺序表,它是基于数组的对线性表的一种实现。抽象数据类型很多时间数组并不能满足我们的需求,比如,所以基于数组要进行封装,也就是我们的顺序表getSize()代码实现public class ArrayList { /** 使用数组存储数据 */ private int[] data; /** size记录当前数组data中实际元...原创 2019-04-30 21:37:25 · 131 阅读 · 0 评论 -
第三章 队列
简介:队列也是和种线性结构,同样也是一种操作受限有线性表,相比数组,队列对应的操作是数组的子集,只能从一端(队尾)添加元素,从另一端(队首)取出元素。它是一种先进先出的数据结构(First In First Out 即 FIFO)应用场景基本操作:数组队列代码实现:public interface Queue<T> { /** ...原创 2019-05-01 14:10:21 · 146 阅读 · 0 评论 -
Nginx+tomcat配置集群负载均衡
简介:开发的应用采用F5负载均衡交换机,F5将请求转发给5台hp unix服务器,每台服务器有多个webserver实例,对外提供web服务和socket等接口服务。之初,曾有个小小的疑问为何不采用开源的apache、Nginx软件负载,F5设备动辄几十万,价格昂贵?自己一个比较幼稚的问题,后续明白:F5是操作于iOS网络模型的传输层,Nginx、apache是基于http反向代理方式,位于I转载 2016-05-04 13:30:07 · 415 阅读 · 0 评论 -
Apache2.2+Tomcat7.0整合配置详解
一、简单介绍 Apache、TomcatApache HTTP Server(简称 Apache),是 Apache 软件基金协会的一个开放源码的网页服务器,可以在 Windows、Unix、Linux 等操作系统中运行是最流行的Web服务器软件之一。Apache 反应速度快,运行效率高,但只支持HTML等静态页面(加载插件后也可支持 PHP 页面)。 Apache Tomcat 是由 Ap...转载 2016-05-04 13:09:43 · 309 阅读 · 0 评论 -
Simple-Spring-Memcached
Memcached转载 2016-05-03 11:02:18 · 486 阅读 · 0 评论 -
Spring 和EJB终于统一融合(转)
Spring 和EJB争吵终于即将结束:Spring将支持EJB3.1标准,Spring will also be a full featured EJB 3.1 implementation for use in the WebLogic application server.这场融合将在JavaEE 6实现,这个融合和当初Hibernate与JPA融合一样水到渠成。Spring创始人R转载 2015-08-24 10:58:33 · 1963 阅读 · 0 评论 -
JSF和Spring整合
JavaServer Faces (JSF) 是一个基于组件的事件驱动框架。JSF 的组件集包含一个事件发布模型、一个轻量级的 IOC 容器和很多用于几乎所有其他公共 GUI 特性的组件,这些特性包括可插入呈现、服务器端验证、数据转换、页面导航管理等等,在某些场景下,将JSF与Spring进行集成是有意义的。由于JSF与Spring均遵循Servlet,因此二者的集成是非常简单的。JSF与Sp原创 2015-08-24 11:15:53 · 483 阅读 · 0 评论 -
什么是EJB
从以上架构图中可以看到,我们的EJB主要是充当业务层与Dao层,调用ejb的客户端是一个Web应用,也可以是一个JavaSE的桌面应用, 其它EJB可以单独打包成一个被客户端调用的jar包,可以分布部署在不同物理服务器上。翻译 2015-07-21 16:21:15 · 501 阅读 · 0 评论 -
JSF-导航规则配置
JSF导航规则配置原创 2015-07-16 11:12:04 · 835 阅读 · 0 评论 -
《JSF教程》-02 JSF与Struts2、Springmvc的对比
一提到MVC框架,可能大家最熟悉的是Struts了,当然像我一样90的程序员,可能一开始就是从struts2学起,直接跳过以老版的struts1。还有人可能在公司用到了Springmvc,哪么它们有哪些区别呢? 其 主要的区别是:struts2和springmvc是基于传统的请求处理模型的MVC框架,而JSF是基于事件处理模型...原创 2015-08-28 11:55:53 · 2250 阅读 · 1 评论 -
《JSF教程》-03 环境搭建与第一个入门例子
在前边我们对JSF做了一个初步的了解,接下来我们搭建JSF开发环境,开发我们的第一个JSF应用吧! java领域常用的IDE有Eclipse、NetBeans和IDEA,其中 Eclipse和NetBeans免费开源,深受开发者喜爱!,哪么对于JSF支持比较好的还是NetBeans,对于JSF代码提示方面配置文件支持方面都做的很到位,毕竟它是Oracle官方推荐的J原创 2015-08-31 10:50:13 · 1911 阅读 · 0 评论 -
Spring整合Hibernate,不用HibernateDaoSupport与HibernateTemplate而用Hibernate自己的api分析说明
Spring整合Hibernate时,主要做了两件事:提供事务级session和声明式的事务控制。在较早的Hibernate中,对于session的管理一般是one-session-per-operation的方式,即一次具体操作一个session。Spring为了解决这个问题,引入了HibernateTemplate类。先来看看它的文档中一段很有意思的话:NOTE: As of转载 2015-08-31 15:19:02 · 579 阅读 · 0 评论 -
用Eclipse开发JSF时,是标签出现自动提醒
先下载JavaEE开发的eclipse的版本,不需要任何插件,你就开始可视化的jsf开发了,下面开始配置。第一步:点击Window-->Preferences菜单,展开Web and XML-->JavaServer Faces Tools。选择Libraries,看到左边的New...按钮了吗?点击开始配置吧。Library Name,给你的JSF库起一个名称吧。最下面的Is JSF转载 2015-08-31 15:32:44 · 785 阅读 · 0 评论 -
JSF中怎么使用Enum生成下拉列表
在开发中常常遇到可以列举的值:如订单状态,处理中(1)、已发货(2)、已完成(3)、已取消(4)。这种可列举的结果专业的做法是将其类型定义成枚举,下面我们就结合JSF的下拉组件将这种枚举类型加载到我们 下位列表上。 定义订单状枚举类型 OrderStateEnum.java:package com.isaiah.app.base;/** * @author HaijunLiu * @em原创 2015-09-03 17:52:04 · 662 阅读 · 0 评论 -
消息中间件规范JMS 2.0的十大改进
消息中间件规范JMS 2.0在编码方面做了很多改进,可以帮助开发者减少编写的代码量。下面,由我一一说明。一、用JMSContext取代了Connection和Session对象消息中间件规范JMS 2.0引入了一个新对象——JMSContext,它提供了原先Connection和Session对象同样的功能。在JMS 1.1中是这样的:Connection connec转载 2015-11-03 12:50:21 · 330 阅读 · 0 评论 -
Web.xml详解
部署描述符实际上是一个XML文件,包含了很多描述servlet/JSP应用的各个方面的元素,如servlet注册、servlet映射以及监听器注册。部署描述符从下面的XML头开始: 这个头指定了XML的版本号以及所使用的编码。头的下面是DOCTYPE声明: PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//E转载 2015-10-08 09:56:37 · 356 阅读 · 0 评论 -
浅析对JSF项目的单元测试
不知道大家有没有对Web页面进行测试的经历?或者正想要对web页面进行测试?为什么我下面这篇文章没什么人回复呢?是因为JSF用到的人少,还是因为我比较超前没几个人想到对JSF页面进行自动测试呢?呵呵 一直以来,我们使用java语言开发的程序主要是web应用程序而非桌面应用,当然java是完全可以用来开发桌面应用程序的,目前已经有了比较成熟的针对java的单元测试工具Junit,但是Junit转载 2015-10-08 10:18:48 · 569 阅读 · 0 评论 -
JSF参数传递方式之f:param标签和f:attribute区别
页面到Bean的参数传递页面中设置参数: Java代码 "Test2" action="#{paramBean.test}"> "name" value="zhang"> "id" value="123456">转载 2015-10-13 09:46:14 · 1537 阅读 · 0 评论 -
WebLogic安装方式之三静默文件安装
一. 本文演示静默文件方式安装 •在Windows上 –打开命令行窗口 –filename.exe -mode=silent -silent_xml=file_path •在Unix或Linux上的安装,如果是.bin的安装程序: –chmoda+x filename.bin –./filename.bin -mode=silent -sile转载 2015-12-16 16:29:42 · 931 阅读 · 0 评论 -
LVS+Keepalived+Squid+Nginx高可用负载均衡缓存配置
随着互联网IT行业的发展,越来越多的企业开始使用开源软件搭建自己的web架构,主流的LVS也得到了广泛的应用,在保证高可用的同时,用户对网站的体验速度也有了很高的要求,这时候需要我们在我们的架构既要满足高并发同时还要求高速度。 今天我们来搭建主流架构Lvs+Keepalived+Squid+Nginx 相关软件包:系统:CentOS6.0 x64 Ipvsadm转载 2016-05-11 09:42:09 · 1310 阅读 · 0 评论 -
JAP和Spring整合的三种方式
JPA EJB原创 2015-08-24 10:47:33 · 1998 阅读 · 0 评论