Java
Java
一叶知秋V
这个作者很懒,什么都没留下…
展开
-
Linux 下 Nginx 安装和配置
Nginx 是一款高性能的 http 服务器/反向代理服务器/电子邮件代理服务器,还可以配置虚拟主机。官方测试 Nginx 能够支持 5 万的并发连接,并且 CPU、内存等资源消耗非常低,运行非常稳定。原创 2016-07-26 15:30:21 · 4334 阅读 · 0 评论 -
分布式原理和分布式事务方案
IntelliJ IDEA 是 Java 语言开发的集成环境,最好的 Java 开发工具之一。IntelliJ IDEA 安装完成后即可使用。原创 2016-07-20 12:17:21 · 6612 阅读 · 0 评论 -
Linux 下使用 Docker 将 Java Web 应用容器化
Docker 是一个轻量级容器技术,支持将软件编译成一个镜像 (image),在这个镜像里做好对软件的各种配置,然后发布这个镜像,使用者可以使用这个镜像,运行中的镜像称为容器,容器的启动速度是非常快的 (秒级别)。容器是完全使用沙箱机制,相互之间不会有任何接口。目前主流的软件以及非主流的软件大部分都有人将其封装成 Docker 镜像,我们只需要下载 Docker 镜像,然后运行镜像就可以快速获得已配置好的、可运行的软件。原创 2017-09-08 14:04:39 · 3122 阅读 · 2 评论 -
Java 多线程与并发——JMM 的内存可见性
Servlet 为创建基于 web 的应用程序提供了基于组件、独立于平台的方法,可以不受 CGI 程序的性能限制。Servlet 有权限访问所有的 Java API,包括访问企业级数据库的 JDBC API。一个 Servlet 其实就是一个 Java 类,并且可以通过 "请求-响应" 编程模型来访问的这个驻留在服务器内存里的 Servlet 程序。原创 2016-06-02 09:10:15 · 4436 阅读 · 1 评论 -
MySQL 事务及 Spring 事务管理
使用线程池可以降低资源消耗,提高线程的可管理性。生产环境中不建议使用 Executors 的静态方法创建线程池,建议根据业务自定义 ThreadPoolExecutor 。LinkedBlockingQueue 一定需要指定大小,因为 LinkedBlockingQueue 的默认容量是 Integer.MAX_VALUE,不指定的话极端情况下会造成大量积压,进而引发 OOM,业务不可用。原创 2016-07-09 16:20:52 · 33670 阅读 · 2 评论 -
Java 多线程与并发——synchronized
Java 对操作系统提供的功能进行了封装,包括进程和线程,运行一个程序会产生一个进程,进程包含至少一个线程,每个进程对应一个 JVM 实例,多个线程共享 JVM 里的堆、方法区,每个线程拥有自己的虚拟机栈、本地方法栈、程序计数器,这 3 个区域随线程而生,随线程而灭。原创 2016-05-27 12:58:06 · 5752 阅读 · 3 评论 -
Java 多线程与并发——CAS 操作和 AQS 框架
JMM(Java 内存模型)是一种抽象的概念,并不真实存在,它描述的是一组围绕原子性、有序性、可见性的规范。通过这组规范定义了程序中各个变量的访问方式,包括实例字段、静态字段和构成数组对象的元素。原创 2016-06-03 09:10:26 · 15885 阅读 · 0 评论 -
分布式锁实现方案
当多个进程在不同的系统中,就需要使用分布式锁控制多个进程对同一个资源的访问。本篇介绍的是通过 Redis 实现的分布式锁。原创 2016-12-13 18:39:07 · 14820 阅读 · 1 评论 -
Java 多线程与并发——JUC 包
在 Java 多线程编程中,造成线程安全问题的原因主要是由于存在多条线程共同操作共享数据。解决线程安全问题的根本办法就是同一时刻有且只有一个线程在操作共享数据,其他线程必须等到该线程处理完数据后再对共享数据进行操作。原创 2016-06-01 10:35:42 · 8721 阅读 · 0 评论 -
Linux 下 RocketMQ 安装与运维
当多个进程在不同的系统中,就需要使用分布式锁控制多个进程对同一个资源的访问。本篇介绍的是通过 Zookeeper 实现的分布式锁。原创 2016-12-14 17:49:08 · 15700 阅读 · 3 评论 -
Java 多线程与并发——ThreadLocal
像 synchronized 属于悲观锁,CAS(Compare and Swap,比较并交换)则属于乐观锁,是一种高效实现线程安全性的方法,支持原子更新操作,适用于计数器等场景。CAS 操作失败时由开发者决定是继续尝试,还是执行别的操作,因此支持失败的线程不会被阻塞挂起。原创 2016-06-09 19:11:23 · 9205 阅读 · 0 评论 -
Linux 下 JDK Tomcat MySQL Redis 安装指南
本篇主要讲解 JDK、Tomcat、MySQL 和 Redis 在 Linux 下的安装方法,注重实用性,每个部分之间没有太大关系。这里 Linux 选择 CentOS 7.2,通过 SSH 进行远程操作,本地环境如果是 Windows 可以尝试安装 SSH 客户端 Xshell,如果是 Mac 直接使用自带的终端工具即可。原创 2016-07-25 18:50:59 · 5113 阅读 · 0 评论 -
分布式架构的技术选型与基础平台的建设
本篇主要总结了自己在分布式架构技术选型和基础平台建设方面的经验。原创 2018-05-02 23:16:49 · 969 阅读 · 0 评论 -
Java 多线程与并发——Thread 和 ThreadPool
Java 对操作系统提供的功能进行了封装,包括进程和线程,运行一个程序会产生一个进程,进程包含至少一个线程,每个进程对应一个 JVM 实例,多个线程共享 JVM 里的堆、方法区,每个线程拥有自己的虚拟机栈、本地方法栈、程序计数器,这 3 个区域随线程而生,随线程而灭。原创 2016-05-23 19:46:53 · 6082 阅读 · 1 评论 -
Spring MVC 工作原理
Linux 的体系结构主要分为用户态(用户上层活动)和内核态,在 Linux 启动的时候,首先会启动内核,内核从本质上看是一段管理计算机硬件设备的程序。内核为上层应用程序提供了访问的接口,即系统调用,是一种不能再简化的操作。而公用函数库是对系统调用的封装,方便用户调用。Shell 本质是一个命令解释器,可编程。...原创 2019-09-13 18:04:38 · 2032 阅读 · 0 评论 -
Java Language——网络编程
计算机网络主要功能包括资源共享、信息传输和集中处理、负载均衡和分布式处理、综合信息服务等。实际上 Java 的网络编程就是服务器通过 ServerSocket 建立监听,客户端通过 Socket 连接到指定服务器后,通信双方就可以通过 IO 流进行通信了。原创 2016-05-21 15:26:00 · 7638 阅读 · 0 评论 -
Java Language——反射机制
Java 反射机制是在运行状态中,对于任何一个类,都能够知道这个类的属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为 Java 语言的反射机制。原创 2016-05-22 16:08:11 · 6128 阅读 · 0 评论 -
Java Language——IO 机制
Java 的 IO 流使用了一种装饰器设计模式,它将 IO 流分为底层节点流和上层处理流。本篇重点在如何访问文件与目录、如何以二进制格式和文本格式来读写数据、对象序列化机制、还有 Java7 的 "NIO.2"。原创 2016-05-21 12:43:26 · 7115 阅读 · 0 评论 -
Spring Boot 整合 WebSocket 消息推送
WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。在 WebSocket API 中,浏览器和服务器只需要做一个握手的动作,然后浏览器和服务器之间就形成了一条快速通道,两者之间就可以直接进行数据传送。当你获取 Web Socket 连接后,你可以通过 send() 方法来向服务器发送数据,并通过 onmessage 事件来接收服务器返回的数据。原创 2017-08-24 16:22:41 · 6513 阅读 · 7 评论 -
Linux 下使用 Jenkins 实现自动化部署
Jenkins 是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。原创 2017-11-06 16:41:40 · 2771 阅读 · 0 评论 -
Linux 下使用 Nexus3.x 搭建 Maven 私服指南
Nexus 是 Sonatype 提供的仓库管理平台,能够支持 Docker、Maven、npm 等格式数据的存储和发布,使用 Nexus 可以快速搭建自己公司的 Maven 私服。原创 2017-09-11 22:04:54 · 1016 阅读 · 0 评论 -
Java Language——异常处理
Throwable 是整个 Java 异常体系的顶层父类,它有两个子类,分别是 Error 和 Exception,Error 是程序无法处理的系统错误(系统崩溃、JVM 错误),编译器不做检查;Exception 是程序可以处理的异常,捕获后可能恢复。原创 2016-05-18 11:32:36 · 2032 阅读 · 0 评论 -
Java Language——Servlet 完全解析
Servlet 为创建基于 web 的应用程序提供了基于组件、独立于平台的方法,可以不受 CGI 程序的性能限制。Servlet 有权限访问所有的 Java API,包括访问企业级数据库的 JDBC API。一个 Servlet 其实就是一个 Java 类,并且可以通过 "请求-响应" 编程模型来访问的这个驻留在服务器内存里的 Servlet 程序。原创 2016-05-22 11:09:50 · 8321 阅读 · 0 评论 -
Java Language——数据加密算法和编码方式
数据加密是计算机系统对信息进行保护的一种最可靠的办法。它利用密码技术对信息进行加密,实现信息隐蔽,从而起到保护信息的安全的作用。本文主要介绍了几种常见的数据加密算法(对称密码算法/非对称密码算法)的 Java 实现和常见编码方式的使用。原创 2016-05-23 11:14:46 · 4889 阅读 · 0 评论 -
httpclient 必须知道的参数设置及代码写法、存在的风险
Velocity 是一个基于 Java 的模板引擎,它可以使用简单但功能强大的模板语言来引用 Java 代码中定义的对象。除此之外,Velocity 还可用于从模板生成 SQL、PostScript 和 XML,既可以用作生成源代码和报告的独立实用程序,也可以用作其他系统的集成组件。原创 2017-06-23 21:36:04 · 7881 阅读 · 2 评论 -
Java 开发规范
好的代码规范有助于减少软件实现的复杂度,降低沟通成本,本规范主要涵盖了软件设计、工程结构、编程、异常日志、单元测试、安全等方面的规范。原创 2019-08-30 14:37:40 · 886 阅读 · 0 评论 -
Java Language——集合框架
Java 集合类位于 java.util 包下,JDK1.5 之后还在 java.util.concurrent 包下提供了一些多线程支持的集合类。Java 集合主要由两个接口派生而出:Collection 和 Map。Collection 的父接口是 Iterable(迭代器),所以 Collection 的子接口全部可以使用 Iterable 遍历集合。原创 2016-05-19 15:09:36 · 5790 阅读 · 0 评论