自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(98)
  • 资源 (3)
  • 收藏
  • 关注

原创 java日志框架(log4j,logback,jdklog,slf4j,commons-logging)

java日志框架(log4j,logback,jdklog,slf4j,commons-logging)之前一直不知道这几个是什么关系。今天梳理下。log4j,logback,jdklog,slf4j,commons-logging?log4j、logback、jdklog 是应用以来的真正用来打日志的日志框架。slf4j、commons-logging 是日志门面(facade)。why slf4j ?说白了增加了门面后的好处就是从直接依赖实现改为了依赖接口。(依赖倒置)日志依赖(mvn)

2020-09-07 15:44:57 147

原创 java线程池(ThreadPoolExecutor)源码解析四

getTask()方法getTask()方法/* * 依赖当前的配置阻塞或等待指定时间获取一个任务,如果在发生以下情况那么 * 当前的worker必须退出,则返回null * 1. 当前线程数超过了最大线程数(可能由于动态修改了最大线程数) * 2. 线程池状态未STOP * 3. 线程池状态为SHUTDOWN 并且任务队列未空 * 4. 当前线...

2018-03-02 16:15:40 337

原创 java线程池(ThreadPoolExecutor)源码解析三

ctl成员变量ctl成员变量 /** * ctl 存储了两部分信息 * workerCount : 线程数 * runStatus: 线程池的状态 * * ctl 是一个 AtomicInteger,int 总共 32位(bit),左边3位用于记录线程池运行状态, * 后面29位用于记录线程数...

2018-03-01 17:03:36 304

原创 java线程池(ThreadPoolExecutor)源码解析二

addWorker() 方法为什么workers使用HashSet和ReentraintLock而不使用并发的setaddWorker() 方法下面是增加了注释的addWorker方法的源码/**根据线程池当前状态和给定的边界条件(以核心线程数还是最大线程数为界)判断是否可以增加一个新的worker(worker是线程池内部的一个对象,是thread对象的一个...

2018-02-28 16:39:53 427

原创 java线程池(ThreadPoolExecutor)源码解析一

java线程池原理简要说明 java线程池(ThreadPoolExecutor)源码解析一 excecute() reject(command) java线程池(ThreadPoolExecutor)源码解析二 addWorker() 为什么workers使用HashSet和ReentraintLock而不使用并发的set java线程池(Thr...

2018-02-27 21:32:37 304

原创 Java线程池原理简要说明(ThreadPoolExecutor)

使用线程池的目的线程池线程数量设置线程池原理执行过程使用线程池的目的使用线程池的目的在于减少频繁创建线程的代价和控制执行任务的线程数。线程池线程数量设置线程池线程数量设置依赖于要执行的任务是计算密集型还是IO密集型,如果是计算密集型,建议的线程池线程数量是CPU核心数量+1。如果是IO密集型,可以按情况增加,但是如果IO占满了, 再增加线程也是没办法提高执...

2018-01-24 22:34:00 360

原创 通过枚举属性获得枚举实例

有的公司喜欢在实体中使用枚举,但是落库落整型值,理由主要就是 1、整形比字符串省地方 2、如果是字符串,设置多长 像这样enum Gender { MALE(0), FEMALE(1); private int code; public int getCode() { return code; } private Gender(int

2017-12-28 16:01:07 6649

原创 理解Threadlocal

ThreadLocal 简介简单说,threadlocal的作用就是保证你在调用get的时候获取的值,是在同一个线程中,你之前set过的值。private static final ThreadLocal<String> tlocal=new ThreadLocal();/*假设有两个线程都执行完1,并且没有执行2.后面不管哪个线程先执行2,取出来的值都是自己之前set的值*/void foo(

2017-11-27 18:40:40 318

原创 白话tcp三次握手

tcp三次握手有个的通俗说法,“我给你讲个笑话”,不过看完了还是不是很明白,我觉得是因为中间少了个网络,也就是AB之间的通信并不一定成功的A :我给你讲个笑话(第一次) B :好(第二次) 接下来有个问题,就是B跟A说”好”,B并不知道A是否接收到这个”好”的消息,如果A不告诉B,“好的,我知道你再等我,你等等,我要开始讲了”,那B的等待就可能是无意义的 A:好了,我知道你再等我,等等哈(第三

2017-11-23 16:02:33 468

原创 https 原理

这张图是单向认证,如果是双向的话,只是多了,客户端把证书发送给server端,server端进行同样的ca认证

2017-11-21 16:11:57 258

原创 java 注解介绍

java注解是什么java内置注解自定义注解几个例子java注解是什么java中的注解其实很简单,可以理解为给元素(类、属性、方法、等)打tag(标签),同时注解可以带一些属性,这些属性可以有默认值 在运行时(runtime),我们可以通过反射获取元素的注解,根据元素的注解以及注解的属性进行相应的操作。java内置注解内置注解我想大家都很熟悉了@Override 声明这是一个方法重写

2016-11-07 21:20:04 482 1

原创 程序员搞笑集锦0X00

同学,你写这么多 if 都白写了,你老师知道吗public String toString() { StringBuilder builder = new StringBuilder("["); if (this.messageId != null) { builder.append(" messageId=").append(this.mes

2016-10-31 17:24:57 451

转载 程序员笑话0X02

程序员笑话,有深度,更生动一个电气工程师,一个化学家,一个程序员,三个人去吃饭,发现车坏了。 电气工程师:”估计是电瓶没电了” 化学工程师:”估计是没汽油了” 程序员:”要不咱们下去再上来试试?”

2016-10-28 11:59:29 361

转载 程序员笑话0X01

程序员笑话,有深度,更生动程序员解决问题时的情节:换个灯泡,发现架子松了,拿螺丝刀的时候,发现抽屉的滚轴要上油了,而油又没有了,要开车去买,结果车又坏了….于是,老板骂到:”我只是让你换个灯泡,你TMD为什么在修车?!”

2016-10-28 11:37:20 501

原创 jvm如何判断对象是否可以被回收

内容基本来自周志明 深入理解java虚拟机 第二版 第三章 。这本书还可以,不过好像也没什么其他中文的关于jvm比较好的书了jvm要做垃圾回收时,首先要判断一个对象是否还有可能被使用。那么如何判断一个对象是否还有可能被用到?如果我们的程序无法再引用到该对象,那么这个对象就肯定可以被回收,这个状态称为不可达。当对象不可达,该对象就可以作为回收对象被垃圾回收器回收。那么这个可达还是不可达如何判断呢

2016-09-04 01:22:02 7583

翻译 java String.intern() 方法

source : http://java-performance.info/string-intern-in-java-6-7-8/ 这篇文章介绍String.intern 方法在java 6中的实现和java 7,8中的改变字符串共享机制(string pooling)字符串共享机制就是使用单一的string对象来标示唯一的字面值,而不是使用多个表示相同字面值的不同string对象实例。 你可以

2016-09-02 16:38:19 1499

翻译 jvm内存模型(运行时数据区)

原文:https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html#jvms-2.5.5运行时数据区(runtime data area)jvm定义了几个运行时数据区,这些运行时数据区存储的数据,供开发者的应用或者jvm本身使用。按线程共享与否可以分为线程间共享和线程间独立。线程间独立的运行时数据区线程间独立的区域随线程的创建而创建,随

2016-08-31 18:55:22 925

原创 java字节码文件 helloworld

java代码\\A.javapublic class A{}javac A.java \\得到 A.classjavap -v A.class可以看到javap工具帮我们生成的文本的字节码文件Classfile /home/yao/test/javap/A.class Last modified Aug 30, 2016; size 176 bytes MD5 checksum f35fe

2016-08-31 14:56:28 635

翻译 java虚拟机内存模型

source: http://coding-geek.com/jvm-memory-model/JVM memory model总览基于栈stack的架构字节码运行时数据区堆Heap方法区Method area运行时常量池Runtime constant poolpc程序计数器寄存器每个线程 The pc Register Per Thread虚拟机栈每个线程 java vir

2016-08-28 21:39:55 720

翻译 run junit :java.lang.NoClassDefFoundError: org/junit/runners/model/MultipleFailureException

Right click on project in Package Explorer, go to Properties, go to Libraries tab, click on 'Add Library' button, select JUnit, click Next >. You should be able to handle it from there.项目右键,点jav

2015-09-03 23:56:08 4939

转载 解决Eclipse建立Maven项目后无法建立src/main/java资源文件夹的办法

http://www.cnblogs.com/xiaona/p/4837b46b68d3f33642d0f470cad05101.html在项目上右键选择properties,然后点击java build path,在Librarys下,编辑JRE System Library,选择workspace default jre就可以了。

2015-05-16 09:40:16 4170

转载 解决SecureCRT超时自动断开的问题

http://discuzx.sinaapp.com/mediawiki-chapter.html?chapter_id=48&book_id=1相信不少SecureCRT的新手都有过这样的困扰:SecureCRT 超时自动断开连接 很影响工作解决办法:Options->Session Options->Terminal->Anti-idle->勾选Send protocol NO-O

2015-04-08 18:54:05 532

转载 解决Eclipse建立Maven项目后无法建立src/main/java资源文件夹的办法

from:http://www.cnblogs.com/xiaona/p/4837b46b68d3f33642d0f470cad05101.html在项目上右键选择properties,然后点击java build path,在Librarys下,编辑JRE System Library,选择workspace default jre就可以了。

2015-04-02 11:19:06 422

转载 maven update project 后 jrelib 变为1.5 解决方法

在pom中添加配置org.apache.maven.pluginsmaven-compiler-plugin3.01.71.7UTF-8

2015-03-20 16:49:08 528

转载 log4j 指定某个包的输出级别

log4j.category.org.springframework = ERROR

2015-03-20 15:18:07 2046

转载 maven 常用命令

一、将maven 依赖复制到指定目录mvn dependency:copy-dependencies -DoutputDirectory=lib   -DincludeScope=compile二、Maven 手动添加 JAR 包到本地仓库 Maven 常用仓库网址:http://mvnrepository.com/http://search.maven

2015-02-15 14:15:42 463

原创 通过servletcontext读取WEB-INF下的配置文件

InputStream is = request.getSession().getServletContext().getResourceAsStream("/WEB-INF/a.properties");Properties properties = new Properties();properties.load(is);System.out.println(propert

2015-02-15 13:59:17 578

转载 检查数据库是否存在

出处:http://stackoverflow.com/questions/12414596/how-to-check-if-a-particular-database-in-mysql-already-exists-using-java// Connection connection = ResultSet resultSet = connection.getMetaData().ge

2015-02-15 10:32:52 443

转载 java中为何使用十六进制

http://blog.csdn.net/java2009cgh/article/details/6967679Java开发中有时候用十六进制定义常量有什么好处?什么时候考虑使用十六进制?十六进制在可能牵扯到位操作的时候,更加直观,因为一个数字代表4位二进制0或1 例如 0x02 相当于 00000010 ,而十进制就没有那么直观。

2015-02-08 15:09:50 516

转载 如何设置eclipse下查看java源码

出处  http://blog.csdn.net/ludengji/article/details/6367979windows--preferences--java--installed jres --选中jre6--点击右边的edit--选中jre6/lib/rt.jar --点击右边的 source attachment configuration -- external fil

2015-02-08 11:47:17 423

转载 java 2、8、10、16进制之间的转换

java.lang.Integer类可以在2,8,16进制与10进制进行转换十进制转成十六进制: Integer.toHexString(int i) 十进制转成八进制 Integer.toOctalString(int i) 十进制转成二进制 Integer.toBinaryString(int i) 十六进制转成十进制 Integer.valueOf("FFFF",16).

2015-02-08 11:13:25 531

转载 java int 和 byte数组转换

int --> byte[]方式一ByteBuffer.allocate(4).putInt(yourInt).array();方式二public static byte[] intToByteArray(int a){ byte[] ret = new byte[4]; ret[3] = (byte) (a & 0xFF); ret[2

2015-02-06 16:48:53 447

转载 防止jquery ajax 重复提交

var requestSent = false;jQuery("#buttonID").click(function() { if(!requestSent) { requestSent = true; jQuery.ajax({ url: "http://example.com", ...., tim

2015-02-06 10:22:33 426

原创 tomcat 性能检测

一、jconsole1、tomcat在windows上,start方式启动在catalina.bat 文件中的:doRun和:doStart下添加以下代码 (没有换行)set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.ssl=false

2015-02-05 11:13:31 458

原创 java 中的 '\0'

java 中的 '\0' 代表空的字符,!=0  !=null !=' '  public static void main(String[] args) throws UnsupportedEncodingException { byte zero = '0'; byte slashZero = '\0'; System.out.println("zero\t" +

2015-02-03 14:41:23 2892

原创 spring mvc 返回json 几个关键配置

1、@ResponseBody2、添加 jackson 依赖org.codehaus.jacksonjackson-mapper-asl1.9.103、启动spring mvc 注解  4、procedurces@RequestMapping(method = RequestMethod.GET, produces = "application/json")

2015-01-27 23:58:10 590

翻译 spring MVC controller 的单元测试 第一部分:配置

出处:http://www.petrikainulainen.net/programming/spring-framework/unit-testing-of-spring-mvc-controllers-configuration/感谢作者!spring MVCcontroller 的单元测试 第一部分:配置Spring MVC Test ,使使我们可以通过Dispatche

2015-01-22 20:12:09 1354

翻译 spring mvc interceptor 示例

spring mvc inteceptor 示例inteceptor:public class RequestInitializeInterceptor extends HandlerInterceptorAdapter {  /**   * In this case intercept the request BEFORE it reaches the contr

2015-01-22 13:17:57 700

转载 JDBC中日期/时间的处理技巧

1.对于数据库种不同的时间类型,要分别采用与之相对应的Java包装类来存取; 日期类型用java.sql.Date,时间类型用java.sql.Time,日期/时间类型用java.sql.Timestamp; 这里举个例子:假设要从oracle中获取系统时间,需要执行sql:select sysdate from dual,然后在通过ResultSet获取查询结果时,一定要调用方法:g

2015-01-15 18:07:27 489

转载 httpclient 请求乱码

http://blog.csdn.net/xingyue425/article/details/7258934这几天都在纠结Java Web开发中的中文编码问题。其实,很多Java Web开发者都被中文编码“折磨”过,网络上有大量的讨论。以前我也读过这方面的博文,读完后感觉似乎懂了,好像知道了编码问题的原因和解决方法。但是, 一旦投入到实际开发中,发现自己其实没懂,囧!  

2015-01-15 15:33:26 550

java内存模型说明

这是我翻译的一篇java内存模型的说明,分享给大家 这里是原文出处: http://tutorials.jenkov.com/java-concurrency/index.html 这里还有很多其他的教程,都挺好的

2015-03-06

SVN使用教程

SVN使用教程 这个就是svn使用教程

2014-12-22

how tomcat works 源码

how tomcat works 源码

2014-12-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除