• 等级
  • 11494 访问
  • 28 原创
  • 41 转发
  • 117557 排名
  • 0 评论
  • 0 获赞

十年架构师详解JVM运行原理

做Java开发的几乎都知JVM这个名词,但是由于JVM对实际的简单开发的来说关联的还是不多,一般工作个一两年(当然不包括爱学习的及专门做性能优化的什么的),很少有人能很好的去学习及理解什么是JVM,以及弄清楚JVM的工作原理,个人认为这块还是非常有必要去认真了解及学习的,特别是刚入门或入门不久的java开发来说,JVM是Java的基石! 1.JVM简析 作为一名Java使用者,掌握JVM的体系...

2018-09-14 22:37:53

Vmware虚拟机三种网络模式详解

Vmware虚拟机三种网络模式详解 原文来自http://note.youdao.com/share/web/file.html?id=236896997b6ffbaa8e0d92eacd13abbf&type=note  我怕链接会失效,故转载此篇文章 由于Linux目前很热门,越来越多的人在学习linux,但是买一台服务放家里来学习,实在是很浪费。那么如何解决这个问题?虚拟机软件是...

2018-09-08 18:05:46

Netty入门(二)时间服务器及客户端

  在这个例子中,我在服务器和客户端连接被创立时发送一个消息,然后在客户端解析收到的消息并输出。并且,在这个项目中我使用 POJO 代替 ByteBuf 来作为传输对象。 一、服务器实现 1.  首先我们自定义传输数据对象 1 package com.coder.client; 2 3 import java.util.Date; 4 5 /** 6 * 自定义时间数...

2018-08-28 15:49:17

Netty入门(一)环境搭建及使用

一、项目创建   在 Eclipse 中右键,新建->项目->Maven->Maven Project->下一步->选择 quickstart      下一步->设置如图(参数自取)      点击完成。    项目会自动创建 pom.xml 文件,打开该文件,点击 Dependencies标签->Add..,设置如图(参数由 Netty 版...

2018-08-28 15:34:05

Netty 5用户指南

问题 现如今我们使用通用的应用程序或者类库来实现系统之间地互相访问,比如我们经常使用一个HTTP客户端来从web服务器上获取信息,或者通过web service来执行一个远程的调用。 然而,有时候一个通用的协议和他的实现并没有覆盖一些场景。比如我们无法使用一个通用的HTTP服务器来处理大文件、电子邮件、近实时消息比如财务信息和多人游戏数据。我们需要一个合适的协议来处理一些特殊的场景。例如你可以...

2018-08-26 13:11:47

Netty从零开始(一)

现在我们使用通用应用程序或包进行通信。例如,我们经常使用HTTP客户端库从Web服务器检索信息,并通过Web服务调用远程过程调用。然而,通用协议或其实现有时不能很好地扩展。这就像我们不使用通用HTTP服务器来交换大量文件,电子邮件和近实时消息,如财务信息和多人游戏数据。需要的是高度优化的协议实现,专门用于特殊目的。例如,您可能希望实现针对基于AJAX的聊天应用程序,媒体流或大型文件传输进行了优化的...

2018-08-25 15:22:35

BIO与NIO、AIO的区别

BIO与NIO、AIO的区别(这个容易理解)   IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。 一、BIO      在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要对每个请求建立一堆线程等待请求,而客户端发送请求后,先咨询服...

2018-08-25 15:04:26

BIO与NIO、AIO的区别

BIO与NIO、AIO的区别(这个容易理解)   IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。 一、BIO      在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要对每个请求建立一堆线程等待请求,而客户端发送请求后,先咨询服...

2018-08-22 22:23:09

Java并发包中Semaphore的工作原理、源码分析及使用示例

简介: 在多线程程序设计中有三个同步工具需要我们掌握,分别是Semaphore(信号量),countDownLatch(倒计数门闸锁),CyclicBarrier(可重用栅栏) 欢迎探讨,如有错误敬请指正 如需转载,请注明出处 http://www.cnblogs.com/nullzx/ 1. 信号量Semaphore的介绍 我们以一个停车场运作为例来说明信号量的作用。假设停车场只有三个...

2018-08-15 21:15:02

悲观锁和乐观锁的区别和应用场景

悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。   乐观锁(Optimistic Lock), 顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,...

2018-08-14 21:46:31

多线程之CountDownLatch和CyclicBarrier的区别和用法

一.CountDownLatch的使用 CountDownLatch经常用于监听某些初始化操作,等初始化执行完毕后,再通知主线程继续工作。 CountDownLatch定义: 一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。用给定的计数 初始化 CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await ...

2018-08-14 20:19:20

并发工具类(二)同步屏障CyclicBarrier

简介 CyclicBarrier 的字面意思是可循环使用(Cyclic)的屏障(Barrier)。它要做的事情是,让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续干活。CyclicBarrier默认的构造方法是CyclicBarrier(int parties),其参数表示屏障拦截的线程数量,每个线程调用await方法告诉C...

2018-08-13 09:35:30

并发工具类(一)等待多线程完成的CountDownLatch

简介 CountDownLatch 允许一个或多个线程等待其他线程完成操作。 应用场景 假如有这样一个需求,当我们需要解析一个Excel里多个sheet的数据时,可以考虑使用多线程,每个线程解析一个sheet里的数据,等到所有的sheet都解析完之后,程序需要提示解析完成。在这个需求中,要实现主线程等待所有线程完成sheet的解析操作,最简单的做法是使用join。代码如下:   pub...

2018-08-13 09:22:19

Spring注解

声明Bean的注解:@Component : 组件,没有明确的角色@Service : 在业务逻辑层(service层)使用@Repository : 在数据访问层(dao层)使用.@Controller : 在展现层(MVC--SpringMVC)使用注入Bean的注解:@Aautowired : Spring提供的注解.@Inject : JSR-330提供的注解@Resource : JSR...

2018-05-23 21:45:00

springmvc通过@Value注解读取Properties配置文件的值,junit测试可以取到值,但是在业务中无法读取

最近试着做了个springmvc 项目,在加入 发邮件 功能时遇到的问题。Spring 通过注解获取*.porperties文件的内容,除了xml配置外,还可以通过@value方式来获取。@value是需要spring注解扫描的,所以要将spring注解扫描配置中加上实体类的包名路径,实体类中也应添加@Component@Component  public class M...

2018-05-23 21:39:41

Spring 3 MVC深入研究

前言:大家好,Spring3 MVC是非常优秀的MVC框架,由其是在3.0版本发布后,现在有越来越多的团队选择了Spring3 MVC了。Spring3 MVC结构简单,应了那句话简单就是美,而且他强大不失灵活,性能也很优秀。官方的下载网址是:http://www.springsource.org/download   (本文使用是的Spring 3.0.5版本)Struts2也是比较优秀的MVC...

2018-05-22 17:25:34

Sql语句中IN和exists的区别及应用

  表展示    首先,查询中涉及到的两个表,一个user和一个order表,具体表的内容如下:    user表:        order表:       in    确定给定的值是否与子查询或列表中的值相匹配。in在查询的时候,首先查询子查询的表,然后将内表和外表做一个笛卡尔积,然后按照条件进行筛选。所以相对内表比较小的时候,in的速度较快。    具体sql语句如下: 1 SELECT ...

2018-05-22 16:59:13

Http请求中Content-Type讲解以及在Spring MVC中的应用

引言: 在Http请求中,我们每天都在使用Content-type来指定不同格式的请求信息,但是却很少有人去全面了解content-type中允许的值有多少,这里将讲解Content-Type的可用值,以及在Spring MVC中如何使用它们来映射请求信息。1.  Content-Type  MediaType,即是Internet Media Type,互联网媒体类型;也叫做MIME类型,在Ht...

2018-05-22 09:57:53

@RequestBody、@ResponseBody的具体用法和使用时机

引言:接上一篇文章讲述处理@RequestMapping的方法参数绑定之后,详细介绍下@RequestBody、@ResponseBody的具体用法和使用时机;简介:@RequestBody作用:       i) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上;      ii) 再把H...

2018-05-22 09:54:31

Tomcat性能优化

Tomcat性能优化2013年10月20日 22:42:40阅读数:1191一、操作系统调优对于操作系统优化来说,是尽可能的增大可使用的内存容量、提高CPU的频率,保证文件系统的读写速率等。经过压力测试验证,在并发连接很多的情况下,CPU的处理能力越强,系统运行速度越快。【适用场景】任何项目。二、Java虚拟机调优应该选择SUN的JVM,在满足项目需要的前提下,尽量选用版本较高的JVM,一般来说高...

2018-05-22 09:45:24

ywl470812087

关注
  • 计算机软件/java开发工程师
  • 中国 江西省 上饶市