java
文章平均质量分 87
yongfeng596
这个作者很懒,什么都没留下…
展开
-
String s = "a" + "b" + "c" + "d" + "e"对象问题
问题1: String s = "a" + "b" + "c" + "d" + "e"; 问此语句共创建了几个对象, 答案是 就创建了一个 String s = "a" + "b" + "c" + "d" + "e"; 赋值符号右边的"a"、"b"、"c"、"d"、"e"都是常量 对于常量,编译时就直接存储它们的字面值而不是它们的引用 在编译时就直接讲它们连接的结果转载 2014-07-16 13:23:20 · 785 阅读 · 0 评论 -
jvm dup
http://blog.csdn.net/axman/article/details/2393621为什么对象被new 以后在执行dup操作?今天有个朋友问我,为什么一个new一个对象的指令在new后面紧跟的是dup操作?他说搜了可能找到的搜索引擎都找不到答案,包括翻了Java虚拟机指令>>这本书也没有任何说明.我们先来看看为dup指令的作用,dup指令可以复制栈顶的一个字再压入栈转载 2017-01-23 20:13:15 · 2629 阅读 · 1 评论 -
java二叉树的非递归遍历
//===============采用非递归方式======================== public void theFirstTraversal_Stack(Node root) { //先序遍历 Stack stack = new Stack(); Node node = root; while (node != null || stack.size() > 0) {转载 2017-02-27 11:13:54 · 393 阅读 · 0 评论 -
记录一次LinkError排错:
记录一次LinkError排错:发现:通常有两个环境,一个日常,一个灰度。于是,日常测试好了,上灰度了,可怕的问题来了,访问某一功能,就报类linkerror错误了过程: 根据以往的经验,这种错误必定是类冲突了,那么类冲突一般通过排除类的加载去解决,但是我们这种情却不是这样,有一个中间件团队的插件(pandoda),另外应用里面一般也会有中间件相关的包,为了统一的管理,pa原创 2016-11-01 19:29:46 · 1845 阅读 · 0 评论 -
JAVA方法链路跟踪实现思路
背景 为了掌握链路中方法的执行情况,通过链路分析可以知道代码逻辑实现。技术 显然,为了需要跟踪方法的执行情况,需要对方法进行aop拦截 AOP常见的动态生成和静态生成。 动态AOP是通过java动态代理或者字节码增强技术在runtime期间进行增强。 静态AOP在这儿定义为在应用启动完成之前,就通过字节码生成技术对代码进行增加。 缺点:动态AOP原创 2016-11-09 20:37:44 · 17962 阅读 · 3 评论 -
Asm实现静态AOP的两种方式-生成java-proxy类
AOP静态生成Java proxy 静态AOP基于java agent方式加载java-javaagent:myagent.jar 动态AOP是通过java动态代理或者字节码增强技术在runtime期间进行增强。 静态AOP在这儿定义为在应用启动完成之前,就通过字节码生成技术对代码进行增加。 缺点:动态AOP对原生不能aop ,且遇到USER use原创 2016-11-09 21:33:12 · 3503 阅读 · 1 评论 -
java8新特性
Java 8 已经发布很久了,很多报道表明Java 8 是一次重大的版本升级。在Java Code Geeks上已经有很多介绍Java 8新特性的文章,例如Playing with Java 8 – Lambdas and Concurrency、Java 8 Date Time API Tutorial : LocalDateTime和Abstract Class Versus Inte转载 2016-07-09 17:27:56 · 410 阅读 · 1 评论 -
领域建模有很多种方法,对于同样的问题域使用不同的建模手段得到的模型可能也不尽相同。于是我经常听到这样一个问题:怎么才能保证建模的正确性?
领域建模有很多种方法,对于同样的问题域使用不同的建模手段得到的模型可能也不尽相同。于是我经常听到这样一个问题:怎么才能保证建模的正确性?这听起来是个合理的质疑,但实际上却不是那么有道理。首先我们需要明白建模的目的是什么?如果仅仅是为了描画问题,那么并没有什么对错之分——仅仅是立场和角度的差别;而如果是为了企业业务系统而进行建模,那么这个问题应该变为:如何保证模型能够支撑企业的运营?转载 2016-07-10 21:11:04 · 1364 阅读 · 0 评论 -
G1垃圾收集器
文介绍如何使用G1,及在 Hotspot JVM 中怎么使用G1垃圾收集器。 您将了解 G1 收集器的内部原理, 切换为 G1 收集器的命令行参数, 以及让其记录GC日志的选项。需要的时间大约 1 个小时简介本文涵盖了Java虚拟机(JVM, Java Virtual Machine)中 G1 的基础知识。第一部分, 简单概述JVM的同时介绍了垃圾收集和性能转载 2016-01-16 15:54:18 · 962 阅读 · 0 评论 -
springMVC+mybatis多数据源配置(dao扫描版本)
原理图如下我们通过改变dao的session就可以达到数据库的切换,读写分离,多数据源就方便起来。以下是主要配置代码applicationContext.xml<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-insta原创 2014-06-20 21:19:49 · 4356 阅读 · 2 评论 -
spring beanPostProcesser
The BeanPostProcessor interface defines callback methods that you can implement to provide your own instantiation logic, dependency-resolution logic etc. You can also implement some custom logic after原创 2015-01-29 17:19:48 · 616 阅读 · 0 评论 -
java 并发包重要类源码分析
ConcurrentHashMapConcurrentHashMap是线程安全的HashMap的实现。1)添加put(Object key , Object value)ConcurrentHashMap并没有采用synchronized进行控制,而是使用了ReentrantLock。public V put(K key, V value转载 2014-10-28 15:34:38 · 726 阅读 · 0 评论 -
常见JVM异常报错解决方案
第一类内存溢出,也是大家认为最多,第一反应认为是的内存溢出,就是堆栈溢出:那什么样的情况就是堆栈溢出呢?当你看到下面的关键字的时候它就是堆栈溢出了:java.lang.OutOfMemoryError: ......java heap space.....也就是当你看到heap相关的时候就肯定是堆栈溢出了,此时如果代码没有问题的情况下,适当调整-Xmx和-Xms是可以避免的,不过一定是转载 2014-10-23 11:34:44 · 2964 阅读 · 0 评论 -
sleep (1000),sleep(0)
我操作系统中,CPU竞争有很多种策略。Unix系统使用的是时间片算法,而Windows则属于抢占式的。在时间片算法中,所有的进程排成一个队列。操作系统按照他们的顺序,给每个进程分配一段时间,即该进程允许运行的时间。如果在 时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。调度程 序所要做的就是维护一张就绪进程列表,,当转载 2014-08-27 11:44:56 · 563 阅读 · 0 评论 -
Spring事务机制
Spring事务机制主要包括声明式事务和编程式事务,此处侧重讲解声明式事务,编程式事务在实际开发中得不到广泛使用,仅供学习参考。Spring声明式事务让我们从复杂的事务处理中得到解脱。使得我们再也无需要去处理获得连接、关闭连接、事务提交和回滚等这些操作。再也无需要我们在与事务相关的方法中处理大量的try…catch…finally代码。我们在使用Spring声明式事务时,有一个非常重要的概转载 2014-07-03 16:36:26 · 350 阅读 · 0 评论 -
java单链表reverse
直接代码如下: public static void main(String[] args) { SingleNode A = new SingleNode("A"); SingleNode B = new SingleNode("B"); SingleNode C = new SingleNode("C"); Singl原创 2017-02-14 20:31:09 · 385 阅读 · 0 评论