- 博客(14)
- 资源 (2)
- 收藏
- 关注
转载 慎用Java递归调用
在java语言中,使用递归调用时,如果过多的调用容易造成java.lang.StackOverflowError即栈溢出和程序执行过慢。这是一个潜在Bug和影响程序执行效率问题,需要谨慎使用。下面先看造成java.lang.StackOverflowError即栈溢出问题:[java] view plain copypublic
2017-03-03 17:57:12 5582 2
转载 Java三种编译方式:前端编译 JIT编译 AOT编译
Java程序代码需要编译后才能在虚拟机中运行,编译涉及到非常多的知识层面:编译原理、语言规范、虚拟机规范、本地机器码优化等;了解编译过程有利于了解整个Java运行机制,不仅可以使得我们编写出更优秀的代码,而且还可以使得在JVM调优时更得心应手。 下面我们先来看下Java体系中的三种编译方式:前端编译、即时编译(JIT编译)、静态提前编译(AOT编译),先来了解它们各有什
2017-03-02 09:55:29 1645
转载 java volatile关键字的含义详细介绍
在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉。Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 同步块 和 volatile 关键字机制。synchronized 同步块大家都比较熟悉,通过 synchronized 关键字来实现,所有加上synchronized 和 块语句,在多线
2016-12-25 17:30:34 366
原创 关于java多线程中的wait和sleep方法和临界区的概念
1.这两个方法的所属不同,sleep属于Thread类中的。而wait()方法,则是属于Object类中的。2.sleep方法使得线程暂停执行设置的时间,此时失去CPU的控制权但是他的Monitor监控状态依然存在,指定的时间过去之后他就又能开始执行了。3sleep方法并不会释放对象锁但是呢wait()方法会释放对象锁4.wait()方法必须在有锁的状态下才能够使用否则就会报错java
2016-12-24 23:41:17 955
原创 一个多线程synchronized引发的问题思考
/* * 查看程序,到底是输出多少? * */public class TT implements Runnable { int b=0; public synchronized void m1() { b=1000; try { Thread.sleep(5000); } catch (InterruptedException e) { e.printSta
2016-12-22 18:03:24 900
转载 从头到尾彻底解析哈希表算法
分享到:132“Doge”变化术“Doge”变身术Maya3D建模攻略——葵花宝典Oeasy教你玩转后期剪辑Premiere原文出处: 研究者July 说明:本文分为三部分内容,第一部分为一道百度面试题Top K算法的详解;第二部分为关于Hash表算法的详细阐述;第三部分为打造一个最快的Hash表算法。
2016-12-19 14:49:55 477
转载 同步和Java内存模型
原文:http://gee.cs.oswego.edu/dl/cpj/jmm.html作者:Doug Lea 译者:程晓明,萧欢,杜建雄 校对:方腾飞,丁一,欧振聪目录引言原子性可见性有序性Volatile
2016-12-19 10:55:16 201
转载 Java内存模型FAQ
原文:http://www.cs.umd.edu/~pugh/java/memoryModel/jsr-133-faq.html 译者:Alex,方腾飞目录什么是内存模型?其他语言,像c++,也有内存模型吗?JSR 133是什么?重排序是什么?旧内存模型有什么错误?没有正确同步的含义是什么?同步会做些什么呢?final字段如何改变它们的值?在新的JMM下final字段是如何工
2016-12-19 10:54:06 208
转载 【Doug Lea系列】Java并发结构
原文链接:http://gee.cs.oswego.edu/dl/cpj/mechanics.html作者:Doug Lea 译者:萧欢 校对:方腾飞内容线程同步监视器线程线程是一个独立执行的调用序列,同一个进程的线程在同一时刻共享一些系统资源(比如文件句柄等)也能访问同一个进程所创建的对象资源(内存资源)。java.lang.Thread对象负责统计和控
2016-12-19 10:28:55 2547
转载 static特别用法【静态导包】——Java包的静态导入
面试我问你static关键字有哪些作用,如果你答出static修饰变量、修饰方法我会认为你合格,答出静态块,我会认为你不错,答出静态内部类我会认为你很好,答出静态导包我会对你很满意,因为能看出你非常热衷研究技术。于是乎查找资料如下: 静态导包就是Java包的静态导入,用import static代替import静态导入包是JDK1.5中的新特性。一般我们导入一个
2016-12-19 09:46:28 3333
转载 java并发中的原子变量和原子操作以及CAS介绍
起源于一道面试题i++是不是原子操作?什么事原子操作?于是乎搜集答案: 很多情况下我们只是需要一个简单的、高效的、线程安全的递增递减方案。注意,这里有三个条件:简单,意味着程序员尽可能少的操作底层或者实现起来要比较容易;高效意味着耗用资源要少,程序处理速度要快;线程安全也非常重要,这个在多线程下能保证数据的正确性。这三个条件看起来比较简单,但是实现起来却难以令人满意。
2016-12-18 23:11:40 7293 3
转载 Eclipse中建包时出现Package already exists. Note: Views might filter empty parent的解决方案
有人喜欢在编程中把所有的包都建好以后再开始编程,就难免会在建包的时候出现:Package already exists. Note: Views might filter empty parent.这样的错误提示。错误是因为该包你已经建了,因为它是一个空包(即不包含类,并不是不包含包),所以未显示出来。要显示出来的话,你可以在【Package Exporer】中将【Pack
2016-12-10 15:53:58 14058 8
转载 深入探索spring技术内幕(六): JDK动态代理和cglib生成代理
[ JDK生成代理 ]JDK中给我们提供了一个Proxy类可以动态的给我们生成代理.假定我们要做一个权限管理系统, 需要控制用户对某一个方法的访问. 如果user为null, 那么不让用户访问save方法.① 接口类: PersonService[java] view plain copy public i
2016-10-04 09:57:05 386
转载 深入探索spring技术内幕(五): 剖析spring AOP工作原理
一、前言AOP (Aspect Oriented Programing) - 面向切面编程,它主要用于日志记录、性能分析、安全控制、事务处理、异常处理等方面。AOP主要使用JDK的反射和动态代理,AOP代理其实是由AOP框架动态生成的一个对象,该对象可作为目标对象使用,AOP代理包含了目标对象的全部方法,但AOP代理的方法与目标对象的方法存在差异:AOP方法在特定切入点添加了增强处
2016-10-04 09:56:28 948 1
人工智能狂潮 机器人会超越人类吗
2018-04-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人