自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(154)
  • 问答 (3)
  • 收藏
  • 关注

原创 loback打印日志问题

设置charset, 在encoder 中增加一行 <charset>UTF-8</charset>,重新启动系统,日志中中文显示正常了。<appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <File>${catalina.base}/logs/le...

2019-07-13 23:36:01 320

原创 idea到tomcat扔进war包的区别

1.url需要在tomcat的server.xml修改2遇到spring-datasource.xml需要去掉中文注释问题,不然启动因为编码问题报错。

2019-04-01 11:14:46 287

原创 通配符的匹配很全面, 但无法找到元素 'aop:aspectj-autoproxy' 的声明

切面编程的时候,明明添加了<aop:aspectj-autoproxy proxy-target-class="true"/>于spring-service.xml中还是没有拦截到特定类的方法,想了一下,拦截的目标是controller的方法,所以把<aop:aspectj-autoproxy proxy-target-class="true"/>放...

2019-03-31 22:24:21 1756

原创 tomvat启动日志出现(涓嬪崍)乱码问题

到tomcat/conf/目录下修改logging.properties 找到 java.util.logging.ConsoleHandler.encoding = utf-8这行 更改为 java.util.logging.ConsoleHandler.encoding = GBK---------------------作者:whscheetah来源:CSDN原文:htt...

2019-03-29 23:57:27 2153 2

原创 BigDecimal从单位元转换为分,并四舍五入取整

单位的转换为乘以100public static Object yuan2penny(BigDecimal yuan, Boolean toInt){ if(toInt) { //元乘以100,并四舍五入,并取整 return yuan.multiply(new BigDecimal(100)).setScale(0, BigDecimal.

2017-02-15 11:52:42 4044

转载 内部类访问局部变量的时候,为什么变量必须加上final修饰(转)

这里的局部变量就是在类方法中的变量,能访问方法中变量的类当然也是局部内部类了。 我们都知道,局部变量在所处的函数执行完之后就释放了,但是内部类对象如果还有引用指向的话它是还存在的。例如下面的代码:class Outer{

2017-01-11 11:53:21 317

原创 前端传递参数,在Controller显示问号乱码的问题?

spring mvc的过滤器也设置了,其他地方也设置了utf-8,提交了数据就是在controller直接打印问号,导致数据库就是乱码,前端显示的结果也是乱码?request.setCharacterEncoding("UTF-8");只对POST方式提交的数据有效,对GET方式提交的数据无效。此时可以修改server.xml文件的端口的Connector的属性:URIEncodi

2017-01-03 11:52:49 1888

原创 js,ajax请求,springmvc都是正确的,为何自己看不到正确的结果?

在公司写项目,前端更改了代码,就是简单的把字符串转换后显示,但是为何重启了项目,却看不到改变呢?有一种情况是浏览器的缓存,我使用的是chrome。具体使用方法是:1.f12     2.在network栏目下右键,选择clear brower cache。

2016-09-07 15:06:39 351

原创 去哪儿网实现面试

一面(57分钟)1)自我介绍。2)介绍一下线程池实现原理。3)有哪些方法实现线程安全。4)volatile可以实现线程安全吗?5)HashMap的扩容,解决冲突?6)说说NIO。7)Netty的线程模型。8)自己怎么实现依赖注入。9)提供一个数,怎么从一个数组中找出所有相加为这个数的所有组合。10)mysql数据库索引是什么数据结构。11)TCP流量控制

2016-08-09 15:35:22 1662 1

原创 ConcurrentHashMap如何实现高并发性的

1)利用锁的分段,默认16个锁共同维护整个ConcurrentHashMap,使一个写线程不会持有整个ConcurrentHashMap的锁,降低了持有锁的频率,大大的提高了并发性。2)volatile变量的使用,根据先行发生原则:对于同一个volatile变量,一个写操作会先行发生后面的读操作,每一次,写操作都会队volatile变量的count进行改写,每次读操作都会先行访问这个count

2016-06-24 20:00:32 1019

原创 位运算-Single Number II(给定一个数组,除了一个数字出现一次,其他都出现三次,求出现一次的数)

题目描述:Given an array of integers, every element appears three times except for one. Find that single one.Note:Your algorithm should have a linear runtime complexity. Could you implement it

2016-06-21 15:54:22 931

原创 字符串-Reverse Words in a String(翻转字符串)

问题描述:Given an input string, reverse the string word by word.For example,Given s = "the sky is blue",return "blue is sky the".Update (2015-02-12):For C programmers: Try to solve it 

2016-06-20 11:00:47 438

原创 减少锁的竞争

1)通过使用synchronized代码块儿代替在方法上添加synchronized来保护共享状态的方法,减小锁的范围,减少线程持有锁的时间。2)锁的分解,例如一个类有两个共享状态,一个是人,一个是钱,分别提供两个锁,分别对应这两个共享状态,那么即可减少持有锁的频率。3)锁的分解的进一步扩展那就是锁的分段,例如共享状态人是使用HashTable保存那么程序性能因为经常持有锁二成为性能瓶颈,

2016-06-18 21:13:18 787

原创 java并发编程实战笔记-死锁

死锁的定义:按书上所说,死锁就是自己拥有其他人需要的资源,同时又在等待其他人已经拥有的资源,并且每个人在获得所需要的资源之前都不会放弃自己已经有的资源。死锁的类型:1.简单的顺序死锁:public class die1 { public Object lock1 = new Object(); public Object lock2 = new Object(); pu

2016-06-18 00:17:00 578

转载 java常用的包

转载:http://blog.csdn.net/wangloveall/article/details/8029157Java采用包结构来组织和管理类和接口文件。本文介绍Java语言类库中几个常用的包,因为这几个包在软件开发与应用中经常需要用到,其中有些包是必要的。若是离开它,还真不能做事情了。    第一个包:java.lang包。    阿情说:该包提供了Java语

2016-06-12 20:23:55 353

原创 读写锁ReentrantReadWriteLock

实例:public class ReentrantReadWriteLockTest { private static ReentrantReadWriteLock lock = new ReentrantReadWriteLock(); //private static ReentrantLock lock = new ReentrantLock(); private static R

2016-06-07 21:53:50 374

原创 显式锁ReentrantLock

使用:1)普通上锁和释放锁:lock.lock(); try{ }finally{ lock.unlock(); }2)定时的轮询,如果指定时间没有得到锁的话就会放弃,例子中的线程就会提前结束:public class TestTryLock { static AtomicInteger ii = new AtomicInteger(0); static int

2016-06-07 21:25:38 311

原创 数组-Kth Largest Element in an Array(找出第K大的数)

题目描述;Find the kth largest element in an unsorted array. Note that it is the kth largest element in the sorted order, not the kth distinct element.For example,Given [3,2,1,5,6,4] and k = 2,

2016-06-04 14:49:35 417

转载 Java:String、StringBuffer和StringBuilder的区别

1 StringString:字符串常量,字符串长度不可变。Java中String是immutable(不可变)的。String类的包含如下定义:[java] view plain copy/** The value is used for character storage. */  private final char

2016-06-01 15:20:22 344

转载 synchronized 修饰在 static方法和 非static方法的区别

【问题描述】关于Java中synchronized 用在实例方法和对象方法上面的区别【问题分析】大家都知道,在Java中,synchronized 是用来表示同步的,我们可以synchronized 来修饰一个方法(实例方法和类方法---注:不知道这样叫准确不准确,大家理解我的意识就行了)。也可以synchronized 来修饰方法里面的一个语句块。修饰实例方法:[

2016-06-01 14:35:22 483

原创 链表-Remove Nth Node From End of List(删除指定的节点)

问题描述:Given a linked list, remove the nth node from the end of list and return its head.For example, Given linked list: 1->2->3->4->5, and n = 2. After removing the second node from t

2016-05-31 19:49:35 377

转载 原码, 反码, 补码 详解(一)

为什么要用?计算机内部采用二进制表示数值。如十进制数10用二进制数表示为1010。设计算机字长为8,即1Byte。最高位表示符号,0为正,1为负来看看用原码表示的数在进行加减乘除运算是会有什么问题:十进制:1-1=1+(-1)=0原码:(0000 0001)-(0000 0001)=(0000 0001)+(-0000 0001)=(0000 0001)原+(1000 0001

2016-05-31 15:05:33 1306

转载 原码, 反码, 补码 详解(二)

一. 机器数和真值在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.1、机器数一个数在计算机中的二进制表示形式,  叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1.比如,十进制中的数 +3 ,计算机字长为8位,转换成二进制就是00000011。如果是 -3 ,就是 10000011 。那么,这里的

2016-05-31 14:53:27 452

原创 JVM运行时数据区总结以及对形象的内存布局

一,数据区1)程序计数器,线程私有,也就是一个线程对应一个程序计数器,它的作用是为线程指示指令的地址,唯一没有规定OutOfMemoeyError的区域。2)java虚拟机栈,线程私有,也就是一个线程对应一个栈,线程在调用方法和执行完方法的时候分别对应入栈和出栈的过程,因为是栈的数据结构,非常适合方法调用这样的后进先出的方式,每一个方法对应一个栈帧,栈帧主要有局部变量区(保存局部变量和参数...

2016-05-30 17:38:55 408

原创 Socket使用BufferedReader和BufferedWriter读不到数据的问题

BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));在writer.flus

2016-05-30 09:23:15 2951 1

原创 位运算-Single Number III(只有两个不同的数字出现了一次,其余出现了两次,找出这两个数)

题目描述:Given an array of numbers nums, in which exactly two elements appear only once and all the other elements appear exactly twice. Find the two elements that appear only once.For example

2016-05-29 22:48:15 524

转载 为什么需要https

为什么需要httpsHTTP是明文传输的,也就意味着,介于发送端、接收端中间的任意节点都可以知道你们传输的内容是什么。这些节点可能是路由器、代理等。举个最常见的例子,用户登陆。用户输入账号,密码,采用HTTP的话,只要在代理服务器上做点手脚就可以拿到你的密码了。用户登陆 --> 代理服务器(做手脚)--> 实际授权服务器在发送端对密码进行加密?没用的,虽然别人不

2016-05-27 16:44:04 854

原创 树-Path Sum II(指定和,求根到叶子的路径)

题目:Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given sum.For example:Given the below binary tree and sum = 22, 5

2016-05-25 20:58:05 439

转载 使用 VisualVM 进行性能分析及调优

转自:http://www.ibm.com/developerworks/cn/java/j-lo-visualvm/使用 VisualVM 进行性能分析及调优VisualVM 是一款免费的\集成了多个 JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优。这些功能包括生成和分析海量数据、跟踪内存泄漏、监控垃圾回

2016-05-22 20:00:45 608

原创 数组-在一个有序的数组中寻找出现次数超过一半的那个数

问题描述:在一个不一定有序的数组中寻找出现次数超过一半的那个数思考:参考了网上的办法,忽略两个不相等的相邻的数,即一个数i,出现次数为n>(总数/2),那么(n-1)>((总数-2)/2),考虑在遍历数组的时候,使用一个值保存临时数字出现次数,一个值保存临时的那个数字,相同就加一,不相同减一,如果被减到0,说明就该用下一个数字作为有可能是出现次数最多的临时数字了,时间复杂度

2016-05-22 11:03:59 1101

转载 有关JVM处理Java数组方法的思考

数组对象的类是什么?既然数组都是对象,那么数组的类究竟是什么呢?当然不是java.util.Arrays啦!我们以int一维数组为例,看看究竟。public class Main {   public static void main(String args[]){   int a[] = new int[10]; Class clazz = a.getClass();   Syste

2016-05-19 08:12:50 451

转载 通过分析 JDK 源代码研究 TreeMap 红黑树算法实现

TreeMap 的实现就是红黑树数据结构,也就说是一棵自平衡的排序二叉树,这样就可以保证当需要快速检索指定节点。TreeSet 和 TreeMap 的关系为了让大家了解 TreeMap 和 TreeSet 之间的关系,下面先看 TreeSet 类的部分源代码: public class TreeSet extends AbstractSet implements

2016-05-18 08:57:15 357

转载 理解红黑树

我们使用符号表这个词来描述一张抽象的表格,我们会将信息(值)存储在其中,然后按照指定的键来搜索并获取这些信息。键和值的具体意义取决于不同的应用。符号表中可能会保存很多键和很多信息,因此实现一张高效的符号表也是一项很有挑战性的任务。我们会用三种经典的数据类型来实现高效的符号表:二叉查找数、红黑树、散列表。二分查找我们使用有序数组存储

2016-05-16 07:52:26 663

原创 Vector源码注释,粗略理解

认识Vector就可以和ArrayList进行比较,注意两点:1,它是线程安全的ArrayList(方法都有synchronized)。2,Arraylist无限扩容,扩容方式为在曾经的容量size加上某个参数的值(在add中是加1)和capacity进行比较,如果capacity小,那么capacity=1.5*capacity + 1,如果此时capacity还是小,那么新容量为siz

2016-05-15 19:50:34 321

转载 Java ConcurrentModificationException异常原因和解决方法

Java ConcurrentModificationException异常原因和解决方法  在前面一篇文章中提到,对Vector、ArrayList在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常。下面我们就来讨论以下这个异常出现的原因以及解决办法。  以下是本文目录大纲:  一.Concurr

2016-05-15 19:29:09 542

转载 Java 8的变化: 从永久代(PermGen)到元空间(Metaspace)

正如大家所知,JDK 8 Early Access版已经提供下载。这使开发者可以体验Java8的新特性。其中之一,是Oracle从JDK7发布以来就一直宣称的要完全移除永久代空间。例如,字符串内部池,已经在JDK7中从永久代中移除。JDK8的发布将宣告它的终结。这篇文章将会分享到目前为止对 PermGen 继任者:Metaspace的了解。我们将通过运行一个存在类元数据对象“泄漏”的程序,来对

2016-05-14 10:26:48 1223

原创 JVM调优Demo(四)合适的年轻对象存活年龄

先上代码:生成单位大小对象的类:public class GCDataObject { byte[] bytes = null; public GCDataObject(int i){ bytes = new byte[i *1024 * 1024]; }}测试逻辑:public class Test_MaxTenuringThreshold { public stati

2016-05-13 12:03:35 1259

原创 HashSet源码粗略解析

复习下java的常用集合框架,java常用的集合大致有两种类型,一种实现了Collection接口表示普通的集合,一种实现了Map接口表示严格的键值对,其中Collection又分为List接口类型和Set接口类型,其中List接口类型允许集合中元素重复,例如ArrayList,Vector,LinkedList,Stack,Set接口实现的集合不允许重复元素,例如HashSet和TreeSet。

2016-05-13 00:13:43 317

原创 JVM调优Demo(三)合适的Survivor

使用参数-XX:SurvivorRatio=n表示新生代中Eden空间大小和一个Survivor的比值。有些时候无法增加JVM的整个内存的时候(堆),也可以调整Survivor的值来进行优化,减少MinorGC和FullGC的频率。1,增大-XX:SurvivorRatio,那么Eden就会变大,MinorGC的次数就会减少,但是Survivor也会减小,如果突然出现一些不可回收的大对象,

2016-05-12 21:24:25 1015

原创 JVM调优Demo(二)避免新生代过大(调整合适新生代大小)

先上代码:代码和JVM调优Demo(一)完全一样运行参数:-Xmx20M -Xms20M -Xmn18M -verbose:gc -XX:+PrintGCDetails运行日志:[GC (Allocation Failure) --[PSYoungGen: 13722K->13722K(16384K)] 13722K->13730K(18432K), 0.0008514 secs]

2016-05-12 21:08:28 5334

空空如也

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

TA关注的人

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