自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

风雨砥砺,前行不止

  • 博客(54)
  • 收藏
  • 关注

原创 《程序员修炼之道:从小工到专家》读书笔记

一些关键tips的记录: Care About Your Craft Think! About Your Work 在所有的弱点中,最大的弱点就是害怕暴露弱点 Provide Options, Don`t Make Lame Excuses Don`t Live with Broken Windows 欲求更好, 常把好事变糟 使质...

2018-10-09 15:01:28 507

原创 unsafe入门

java是一种安全的编程语言,并且禁止编程人员对内存做一些胡乱的操作。如果编程人员像操作,可以通过unsafe类如果我们想使用unsafe类,首先要创建一个unsafe对象。但是unsafe的构造方法是私有的。Unsafe类有个getUnsafe方法可以获取unsafe对象,但是他会坚持classloaderpublic static Unsafe getUnsafe( ) { Class...

2018-03-26 16:55:07 329

转载 Java:单例模式的七种写法

Java:单例模式的七种写法转载出处:http://www.blogjava.net/kenzhh/archive/2016/03/28/357824.html第一种(懒汉,线程不安全): 1 public class Singleton {   2     private static Singleton instance;   3     private

2016-07-31 20:52:10 524

原创 Spring 如何注入值到静态变量

Spring 如何注入值到静态变量Spring不允许直接将值注册到静态变量中,可以间接完成在任意类中注入配置文件中的常量import org.springframework.beans.factory.InitializingBean;import org.springframework.beans.factory.annotation.Value;pu

2016-03-31 20:16:49 4973

原创 java.text.MessageFormat类的学习

java.text.MessageFormat类的学习使用比较多的是MessageFormat.format(String pattern, Object … arguments):将pattern中的{}(只能为0-9,需要连续)一替换为argument; 直接上栗子:String formatStr = MessageFormat.format("helloWorld_

2016-03-29 18:25:59 978

原创 Java产生唯一的随机数

Java产生唯一的随机数说起唯一的随机数,可能很容易想到java.util.UUID,如下,可以产生32位长度的字符串。String str = UUID.randomUUID().toString().replaceAll("-", "");但是这样并不是一定没问题的,单机多线程的情况下也可能出现重复的情况。UUID按照开放软件基金会(OSF)制定的标准计

2016-03-28 19:44:52 11740

原创 Servlet设置缓存

Servlet设置缓存   //不允许浏览器端或缓存服务器缓存当前页面信息。    httpServletResponse.setHeader("Pragma", "No-cache");    //浏览器和缓存服务器都不应该缓存页面信息    httpServletResponse.setHeader("Cache-Control", "no-cache");

2016-03-24 18:15:24 3040

原创 org.springframework.beans.Beanutils copyProperties 原理

org.springframework.beans.Beanutils copyProperties 原理BeanUtils. copyProperties(source,targe)原理:根据source的属性来向target同名属性设值。 若target无该属性,则不设名字相同,基本类型和封装类型可以完成映射若target有source无,则target属性值为

2016-03-24 18:13:46 5036 2

原创 Java SE 7新增特效

Java SE 7新增特效官方文档在这Java Programming Language Enhancements Enhancements in Java SE 7 Binary Literals - In Java SE 7, the integral types (byte, short, int, and long) can also be expresse

2016-03-24 14:16:01 820 1

原创 Java泛型中<? super String>和<? extends String>

java泛型中和:包括String和它的父类 :因为String是final,无法被继承,所以只包括null Listsuper String> list1 = new ArrayList list1.add(null); list1.add("String"); List list = new ArrayList list.add(null); // 会报错 list.a

2016-03-24 11:01:03 1988 1

原创 使用ObjectMapper 序列化Json

使用ObjectMapper 序列化Jsonimport java.io.IOException;import java.io.InputStream;import java.text.SimpleDateFormat;import com.fasterxml.jackson.annotation.JsonInclude;import com.fasterxml

2016-03-23 18:27:30 4507

原创 不变模式immutable

不变模式immutable当对象产生后,不发生任何改变。 java.lang.String类和其他八个基本数据类型的包装类就是典型的实现适合场景:(1) 当对象被创建后,其内部状态和数据不再发生变化。 (2) 对象需要共享、被多线程频繁访问。要注意一下几点: - 去除setter方法,及所有修改自身属性的方法 - 所有的属性都必须是私有的,并用final

2016-03-23 15:41:33 419

原创 Java实现QPS控制

Java实现QPS控制什么是QPS QPS:queries per second :每秒的请求数QPS控制的目的 防止恶意刷取,增加项目负载解决方案1(假设需要控制在1s内不多于400个请求):方案描述: 使用数组存储每个请求到来的时间,前400次请求顺利通过,并填满数组。 后续请求到来时,判断当前时间是否比数组中最早的时间晚1s,未晚,则打回, 晚则替换数组中

2016-03-23 15:33:50 13784 8

原创 import static 包的作用

import static 包import static java.lang.Math.*;public class StaticImportTest{ public static void main(String arsg[]){ System.out.println("exp(1.5)="+exp(1.5)); }}引入静态包,可以直接使用Math包的

2016-03-23 14:12:45 421

转载 Java中守护线程的总结

在Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程) 用个比较通俗的比如,任何一个守护线程都是整个JVM中所有非守护线程的保姆:只要当前JVM实例中尚存在任何一个非守护线程没有结束,守护线程就全部工作;只有当最后一个非守护线程结束时,守护线程随着JVM一同结束工作。Daemon的作用是为其他线程的运行提供便利服务,守护线程最典型的应

2016-03-17 18:32:35 343

原创 MySql参数优化

MySql参数优化windows系统配置文件在xxx\MySQL\MySQL Server 下 my.inishow global status可以列出mysql服务器运行各种状态值,show variables 查询mysql服务器配置信息语句:慢查询mysql> show variables like ‘slow%’;

2016-03-17 17:36:10 7123

原创 MySql操作缓慢:copy to tmp table

MySql操作缓慢:copy to tmp table在给表加字段的时候,发现执行几分钟还没完成,查了下数据量,不到200w条记录,不应该出现这种情况。 后来想了想可能是别的线程锁表了。 新建窗口,执行 show processlist,看到所有操作表的线程 发现 state状态为copy to tmp table,这是因为临时结果集大于tmp_table_size,正在将临时

2016-03-17 17:15:07 17665

原创 SpringMVC的拦截器Interceptor

SpringMVC的拦截器Interceptor使用拦截器的配置mvc:interceptors> mvc:interceptor> mvc:mapping path="/**"/> mvc:exclude-mapping path="/perm/**"/> mvc:exclude-mapping path="/api/**"/>

2016-03-17 16:24:43 377

原创 Spring三个重要的注解

Spring三个重要的注解context:annotation-config />这个标签告诉Spring到bean类中寻找一些annotation定义的类, 这些annotation基本如下: @Autowired @PostConstruct @PreDestroy @Resource 等。 需要注意的是。这个标签并没有激活@Transactional 和 @Trans

2016-03-16 19:37:55 1523

原创 Spring从配置文件注入变量

Spring从配置文件注入数据注入基本数据类型和String,使用@Value注解使用格式为 : @Value(“${property:default value}”) 当配置文件没有property会设置为默认值,如果有但是没值,会注入null@Value("${insertVar:1000")private String insertVar;@Value("

2016-03-16 18:33:56 4413

原创 只用try-finally无catch的原因

只用try和finally而不使用catch的原因:try方法块抛出的异常,catch处理不了(NPE...) public void testTryAndFinally(String name){ try { name.length();// NullPointerException } finally {

2016-02-28 10:48:28 1726

转载 try-catch-finally-return的执行顺序

情况1:try块中没有抛出异常try和finally块中都有return语句[java] view plain copypublic static int NoException(){   int i=10;   try{    System.out.println("i in try block is"+i);    retur

2016-02-28 10:36:08 479

原创 Mavne关于clean的问题

Maven关于clean的问题今天在开发中遇到了一个问题。项目编译运行的时候,会报出bug,但是在debug状态下能调通,通过查阅资料找到原因:上一次的执行结果未清除。运行了一次mvn clean 问题解决。Maven build是这个插件让你自己去配置执行目标的。Maven clean 清除上一次Maven执行的结果Maven generate-sources会根据pom配置去生

2016-01-22 20:02:28 661

原创 Maven关于snapshot的问题

Maven关于snapshot的问题之前一直不明白处于开发中的maven工程为什么版本号后面要加snapshot,今天查了一下:snapshot快照仓库用于保存开发过程中的不稳定版本,release正式仓库则是用来保存稳定的发行版本 maven2会根据模块的版本号(pom文件中的version)中是否带有-SNAPSHOT来判断是快照版本还是正式版本。如果是快照版本,那么在mv

2016-01-22 19:41:40 1886

原创 Spring-Mybatis配置文件基本配置

EditSpringMvc与Mybatis集成,配置文件的基本配置web.xml基本配置!- 自动扫描Spring的配置文件,完成Spring的加载 的上下文参数声明应用范围内的初始化参数。它用于向 ServletContext提供键值对,即应用程序上下文信息。我们的listener, filter等在初始化时会用到这些上下文中的信息。在servlet里

2016-01-22 18:11:56 3256

原创 解决Hash冲突的几种方法

开放地址法:1.线性探测法       线性再散列法是形式最简单的处理冲突的方法。插入元素时,如果发生冲突,算法会简单的从该槽位置向后循环遍历hash表,直到找到表中的下一个空槽,并将该元素放入该槽中(会导致相同hash值的元素挨在一起和其他hash值对应的槽被占用)。查找元素时,首先散列值所指向的槽,如果没有找到匹配,则继续从该槽遍历hash表,直到:(1)找到相应的元素

2015-08-24 15:07:44 36276 4

原创 MySQL中explain关键字的使用

explain关键字放在select的前面,可以看见Sql语句的执行情况select_typeselect 的类型,可能会有以下几种:simple: 简单的 select (没有使用 union或子查询)primary: 最外层的 select。union: 第二层,在select 之后使用了 union。dependent union: union 语句中的第二个

2015-08-24 15:06:18 1369

原创 String 为什么是final

String基本约定中最重要的一条是immutable(不可变的)。不变对象的一个优点是 单个实例可以被多人共享 且不用花时间来处理同步和锁的问题。1.才有可能实现常量池,节省heap内存(因为用的多 才有池)2.如果字符串是可变的,那么会引起很严重的安全问题。譬如,数据库的用户名、密码都是以字符串的形式传入来获得数据库的连接3.因为字符串是不可变的,所以是多线程安全的

2015-08-24 15:02:53 536

原创 方法递归对性能的影响

根本原因是这样的,对于每一个线程,都有一个java栈 ,当有一个方法被调用的时候,会产生一些跟这个方法相关的信息,如方法名,参数,中间变量等等,这些叫做栈帧 ,当一个方法执行完毕  这个栈帧才会从栈顶pop掉  你递归的话  会一直向栈里push栈帧  而这个java栈是有一定的长度或深度的,当栈满了,无法再进行push的时候 就出现你上面的异常了,解决办法的话 就不要用递归操作 改用for 而且

2015-08-24 14:58:19 3100

原创 细小知识点之MySQL(二)

三范式。事务隔离级别

2015-08-12 18:02:01 434

原创 细小知识点之Maven

1.dependencyManagement和dependencies的区别dependencyManagementMaven 使用dependencyManagement 元素来提供了一种管理依赖版本号的方式。通常会在一个组织或者项目的最顶层的父POM 中看到dependencyManagement 元素。使用pom.xml 中的dependencyManagement 元素能让

2015-08-07 15:37:38 499

原创 细小知识点之Spring

1.Spring框架支持以下五种bean的作用域:singleton : bean在每个Spring ioc 容器中只有一个实例。prototype:一个bean的定义可以有多个实例。request:每次http请求都会创建一个bean,该作用域仅在基于web的Spring ApplicationContext情形下有效。session:在一个HTTP Session中,一个bean定义对

2015-07-30 15:08:07 400

原创 《Java程序性能优化》学习笔记之HashMap和LinkedHashMap

1.HashMap没啥可说的2.LinkedHashMap是HashMap的子类,在HashMap的基础上加了一个链表,每次put元素都会往链表上加节点。public LinkedHashMap(int initialCapacity, float loadFactor,boolean accessOrder):   accessOrder为true的时候按照元素最后访问时间排序(LRU算

2015-07-30 12:03:04 5200 2

原创 《Java程序性能优化》学习笔记之ArrayList和LinkedList

1.ArrayList底层是数组实现,是一块连续的内存空间,查询速度,删除添加慢;LinkedList是双向链表,头结点中不存放数据,实现栈和队列的操作方法,因此也可以作为栈、队列和双端队列来使用,查询慢,删除添加速度2.ArrayList初始化大小为10,添加元素时要判断是否需要扩容,需要则扩大到1.5倍+1。添加和删除元素时,需要进行数组的复制(System.arraycopy),慢3

2015-07-28 21:22:59 646

原创 细小知识点之JSP&Servlet

1.Servlet生命周期:初始化阶段  调用init()方法2.Servlet初始化阶段:3.Servlet响应请求阶段:4.Servlet终止阶段:

2015-07-24 19:51:02 406

原创 细小知识点之计算机网络

1.TCP连接为什么需要 3次握手?在谢希仁著《计算机网络》第四版中讲“三次握手”的目的是“为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误”。在另一部经典的《计算机网络》一书中讲“三次握手”的目的是为了解决“网络中存在延迟的重复分组”的问题。这两种不用的表述其实阐明的是同一个问题。谢希仁版《计算机网络》中的例子是这样的,“已失效的连接请求报文段”的产生在这样一

2015-07-13 11:13:27 404

原创 细小知识点之Java

1.Integer ,Double等基本数据类型的封装类,当其值发生改变时,其引用地址也发生了变化。

2015-07-13 10:32:33 441

原创 细小知识点之Struts2

1.struts2基本简要流程如下:  1、客户端浏览器发出HTTP请求。  2、根据web.xml配置,该请求被FilterDispatcher接收。  3、根据struts.xml配置,找到需要调用的Action类和方法, 并通过IoC方式,将值注入给Aciton。  4、Action调用业务逻辑组件处理业务逻辑,这一步包含表单验证。  5、Action执行完毕,根据str

2015-07-10 15:27:34 337

原创 细小知识点之MySql(一)

MySql存储引擎。聚集索引及优缺点。逻辑查询处理顺序。between and。看执行计划explain。limit

2015-07-03 11:39:54 500

原创 细小知识点之Hibernate

1.在hibernate中不建议使用一对多的关联关系,因为这种关系在加载的时候效率不高,因为要维护的数据太多。可以考虑多对一,这样加载的时候效率相对较高,相当于一对一的维护。

2015-06-30 22:40:03 411

空空如也

空空如也

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

TA关注的人

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