
java
文章平均质量分 63
Hacker天使马晓培
目标明确生机勃勃地活出欣然的自己!
展开
-
JMM
http://www.tuicool.com/articles/UVzuQb原创 2017-04-14 16:54:53 · 423 阅读 · 0 评论 -
线程池参数说明及队列拒绝策略
参考Java.util.concurrent.ThreadPoolExecutor,其构造方法1: public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliv原创 2017-04-14 16:47:01 · 7455 阅读 · 5 评论 -
Java 测试代码段
http://blog.youkuaiyun.com/mary881225/article/details/62218556原创 2017-04-14 16:46:00 · 370 阅读 · 0 评论 -
Java transient关键字使用小…
1、transient关键字只能修饰变量,而不能修饰方法和类。注意,本地变量是不能被transient关键字修饰的。2、被transient关键字修饰的变量不再能被序列化,一个静态变量不管是否被transient修饰,均不能被序列化。3、一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内容在序列化后无法获得访问。也可以认为在将持久化的对象反序列化后,被trans原创 2017-04-14 16:45:57 · 316 阅读 · 0 评论 -
Java Queue队列系列介绍
http://blog.youkuaiyun.com/mary881225/article/details/62232927queue基本介绍 http://www.cnblogs.com/end/archive/2012/10/25/2738489.htmlQueue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Queue接口。Queue接口窄化了原创 2017-04-14 16:45:53 · 485 阅读 · 0 评论 -
ConcurrentHashMap
原理:http://blog.youkuaiyun.com/i_lovefish/article/details/8044950使用示例:https://my.oschina.net/mononite/blog/144329?p=1ConcurrentHashMapConcurrentHashMap是一个线程安全的HashTable,它的主要功能是提供了一组和HashTable功能相同但是线原创 2017-04-14 16:45:47 · 237 阅读 · 0 评论 -
JVM——Java内存管理及GC机制
http://blog.youkuaiyun.com/suifeng3051/article/details/48292193JVM把内存划分了如下几个区域:1. 方法区2. 堆区3. 本地方法栈4. 虚拟机栈5. 程序计数器 Java对象所占用的内存主要在堆上实现,因为堆是线程共享的,因此在堆上分配内存时需要进行加锁,这就导致了创建对象的开销比较大。当堆原创 2017-04-14 16:45:37 · 549 阅读 · 0 评论 -
跟据经纬度实现附近搜索Java实现
http://www.open-open.com/lib/view/open1421650750328.htmlmysql空间数据库、矩形算法、geohashgeo算法参考文档:http://blog.youkuaiyun.com/wangxiafghj/article/details/9014363geohash 算法原理及实现方式http://blog.charlee.li/g原创 2017-04-14 16:45:33 · 1563 阅读 · 0 评论 -
深入理解Java:SimpleDateFormat安…
http://www.cnblogs.com/peida/archive/2013/05/31/3070790.html我们在开发和设计系统的时候注意下一下三点: 1.自己写公用类的时候,要对多线程调用情况下的后果在注释里进行明确说明 2.对线程环境下,对每一个共享的可变变量都要注意其线程安全性 3.我们的类和方法在做设计的时候,要尽量设计成无状态的解决办法 1.需原创 2017-04-14 16:45:24 · 321 阅读 · 0 评论 -
Java系列(一)Annotation(注解)
http://www.cnblogs.com/peida/archive/2013/04/26/3038503.html 概念Annotation是Java5开始引入的特性。它提供了一种安全的类似于注释和Javadoc的机制。实事上,Annotation已经被广泛用于各种Java框架,如Spring,Jersey,JUnit,TestNG。注解相当于是一种嵌入在程序中的元数据,可以使用原创 2017-04-14 16:45:17 · 369 阅读 · 0 评论 -
Java进阶(二)当我们说线程安全时…
http://www.jasongj.com/java/thread_safe/1.多线程编程中的三个核心概念原子性可见性顺序性2.Java如何解决多线程并发问题Java如何保证原子性(锁/同步/CAS)Java如何保证可见性(volatile)Java如何保证顺序性(锁/同步/volatile/jvm通过happens-before原则)happens-be原创 2017-04-14 16:45:12 · 271 阅读 · 0 评论 -
Java进阶(三)多线程开发关键技术
http://www.jasongj.com/java/multi_thread/1.sleep 与wait2.synchronized 锁的使用是为了操作临界资源的正确性,而往往一个方法中并非所有的代码都操作临界资源。换句话说,方法中的代码往往并不都需要同步。此时建议不使用同步方法,而使用同步代码块,只对操作临界资源的代码,也即需要同步的代码加锁。这样做的好处是,当一个线原创 2017-04-14 16:45:08 · 344 阅读 · 0 评论 -
Java进阶(四)线程间通信剖析
http://www.jasongj.com/java/thread_communication/1.CountDownLatchCountDownLatch适用场景Java多线程编程中经常会碰到这样一种场景——某个线程需要等待一个或多个线程操作结束(或达到某种状态)才开始执行。比如开发一个并发测试工具时,主线程需要等到所有测试线程均执行完成再开始统计总共耗费的时间,此时可以通过Co原创 2017-04-14 16:45:04 · 423 阅读 · 0 评论 -
Java进阶(五)Java I/O模型…
http://blog.youkuaiyun.com/caiwenfeng_for_23/article/details/8458299http://www.cnblogs.com/me115/p/4452801.htmlI/O模型从BIO到NIO和Reactor模式" TITLE="Java进阶(五)Java I/O模型从BIO到NIO和Reactor模式" NAME="image_operate_7原创 2017-04-14 16:45:01 · 337 阅读 · 0 评论 -
线程协作究竟设置多少合理
http://mp.weixin.qq.com/s/EPWwJShDNmnQQE24tAOanQ原创 2017-04-14 16:47:06 · 313 阅读 · 0 评论 -
Java开发hashmap的死循环
http://m.blog.youkuaiyun.com/article/details?id=11928865原创 2017-04-14 16:47:43 · 307 阅读 · 0 评论 -
NavigableMap(java.util.concurre…
java.util.concurrent并发包诸类概览http://ifeve.com/concurrent-collections-6/Java API提供的有趣的数据结构,并且你可以在并发应用程序中使用,它就是ConcurrentNavigableMap接口的定义。实现ConcurrentNavigableMap接口的类存储以下两部分元素:唯一标识元素的key定义元素的原创 2017-04-14 16:50:40 · 508 阅读 · 0 评论 -
java线程池参数含义
参数及设置http://m.blog.youkuaiyun.com/article/details?id=7392607项目中开发通常不会直接使用ThreadPoolExecutor,而是通过Executors.newFixedThreadPool()这种简易写法,创建适合自己项目的线程池。但是了解最基本的线程池ThreadPoolExecutor是十分必要的,尤其是做一些定制方法。比如在执行完一个原创 2017-04-14 16:54:12 · 2179 阅读 · 0 评论 -
线程Dump
参考线程Dump是非常有用的诊断Java应用问题的工具,每一个Java虚拟机都有及时生成显示所有线程在某一点状态的线程Dump的能力。虽然各个Java虚拟机线程dump打印输出格式上略微有一些不同,但是线程dump出来的信息包含线程基本信息;线程的运行状态、标识和调用的堆栈;调用的堆栈包含完整的类名,所执行的方法,如果可能的话还有源代码的行数。JVM(java虚拟机)中的许多问题都可以使用原创 2017-04-14 16:53:52 · 560 阅读 · 0 评论 -
两个OOM Cases排查过程的分享
参考分享一下两个OOM Cases的查找过程,一个应用是NativeOOM;另外一个应用其实没有OOM,只是每隔一段时间就会出现频繁FGC的现象,OOM的查找已经具备了不错的工具,但有些时候还是会出现很难查的现象,希望这两个排查过程的分享能给需要的同学带来一些帮助。Native OOM的排查Case之前的几个PPT里我都说到了,目前查找Native OOM最好的方法就是用google原创 2017-04-14 16:52:44 · 325 阅读 · 0 评论 -
大方法的执行性能与调优过程
参考使用”-XX:-DontCompileHugeMethods”解除大方法的编译限制,一个比较明显的缺点是JVM会尝试编译所遇到的所有大方法,者会使JIT编译任务负担更重,而且需要占用更多的CodeCache区域去保存编译后的代码。但是优点是编译后可以让大方法的执行速度变快,且可能提高GC速度。运行时CodeCache的使用量可以通过JMX或者JConsole获得,Code Cache的原创 2017-04-14 16:52:39 · 681 阅读 · 3 评论 -
JVM调优
参考 堆大小设置 年轻代的设置很关键 JVM中最大堆大小有三方面限制:相关操作系统的数据模型(32-bit还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64位操作系统对内存无限制。在WindowsServer 2003系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。原创 2017-04-14 16:52:26 · 291 阅读 · 0 评论 -
Java集合及concurrent包总结
http://www.cnblogs.com/cccw/p/5837448.html1.集合包 集合包最常用的有Collection和Map两个接口的实现类,Colleciton用于存放多个单对象,Map用于存放Key-Value形式的键值对。 Collection中最常用的又分为两种类型的接口:List和Set,两者最明显的差别为List支持放入重复的元素,而Set不支持。原创 2017-04-14 16:52:14 · 424 阅读 · 0 评论 -
Java实现节点链表
参考链结点 在链表中,每个数据项都被包含在‘点“中,一个点是某个类的对象,这个类可认叫做 LINK。因为一个链表中有许多类似的链结点,所以有必要用一个不同于链表的类来表达 链结点。每个 LINK 对象中都包含一个对下一个点引用的字段(通常叫做 next)但是 本身的对象中有一个字段指向对第一个链结点的引用 单链表是一种顺序存取的结构,原创 2017-04-14 16:51:53 · 724 阅读 · 0 评论 -
Java实现栈结构
参考栈的定义 栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表。 (1)通常称插入、删除的这一端为栈顶 (Top),另一端称为栈底 (Bottom)。 (2)当表中没有元素时称为空栈。 (3)栈为后进先出(Last In First Out)的线性表,简称为 LIFO 表。原创 2017-04-14 16:51:48 · 382 阅读 · 0 评论 -
Java8新特性
参考Java 8可谓是自Java5以来最具革命性的版本了,她在语言、编译器、类库、开发工具以及Java虚拟机等方面都带来了不少新特性。我们来一一回顾一下这些特性。一、Lambda表达式Lambda表达式可以说是Java8最大的卖点,她将函数式编程引入了Java。Lambda允许把函数作为一个方法的参数,或者把代码看成数据。一个Lambda表达式可以由用逗号分隔的参数列表、–>原创 2017-04-14 16:51:43 · 948 阅读 · 0 评论 -
Callable,Runnable比较及用法
编写多线程程序一般有三种方法,Thread,Runnable,Callable.Runnable和Callable的区别是,(1)Callable规定的方法是call(),Runnable规定的方法是run().(2)Callable的任务执行后可返回值,而Runnable的任务是不能返回值得(3)call方法可以抛出异常,run方法不可以(4)运行Callabl原创 2017-04-14 16:51:37 · 338 阅读 · 0 评论 -
ArrayList 与LinkedList 复杂度
与LinkedList 复杂度" />参考原创 2017-04-14 16:51:14 · 1785 阅读 · 0 评论 -
ArrayList、Vector、HashMap、Hash…
原文转自http://www.cnblogs.com/xiezie/p/5511840.html这里要讨论这些常用的默认初始容量和扩容的原因是:当底层实现涉及到扩容时,容器或重新分配一段更大的连续内存(如果是离散分配则不需要重新分配,离散分配都是插入新元素时动态分配内存),要将容器原来的数据全部复制到新的内存上,这无疑使效率大大降低。加载因子的系数小于等于1,意指 即当元素个数原创 2017-04-14 16:51:09 · 290 阅读 · 0 评论 -
Java乐观锁和悲观锁
http://m.blog.youkuaiyun.com/article/details?id=49508035原创 2017-04-14 16:51:03 · 321 阅读 · 0 评论 -
hashMap
http://m.blog.youkuaiyun.com/article/details?id=14166593说数组中存储的是最后插入的元素,所以向前插入。原创 2017-04-14 16:44:00 · 221 阅读 · 0 评论 -
多线程:线程间协作
Synchronized与lock区别http://www.cnblogs.com/duanjie/archive/2012/04/26/2489175.htmlhttp://www.cnblogs.com/paddix/p/5381958.html主要详细讲解了wait/notify/notifyAll和sleep/yield/join方法。最后回答一下上面提出的问题:wait/no原创 2017-04-14 16:43:16 · 260 阅读 · 0 评论 -
多线程练习:三个线程按顺序打印A…
http://blog.youkuaiyun.com/rockeylu/article/details/7455951原创 2017-04-14 16:43:02 · 1075 阅读 · 0 评论 -
equals、hashCode和clone方法
(1)关键技术剖析:(Object类的这三个方法)v equals方法:比较两个对象是否相等,结果为boolean型。v hashCode方法:获得两个对象的hash码,结果为int型。v Clone方法:克隆当前对象,结果为Object型。class T {int a;public T(int a) {super();this.a = a;}pub原创 2017-04-14 16:41:00 · 244 阅读 · 0 评论 -
java初始化顺序
*java虚拟机先加载父类,再加载子类。*在加载类时,会对静态初始化块、静态成员变量(类变量)、静态方法进行一次初始化。*只有在调用new方法时才会创建类的对象。*创建对象的过程是:按照父类继承关系进行初始化,首先执行父类的初始化块部分,后是父类的构造方法,再执行子类的初始化块,最后是子类的构造方法。*销毁对象的过程是:首先销毁子类部分,再销毁父类部分。 看下面代码:父类:原创 2017-04-14 16:40:55 · 214 阅读 · 0 评论 -
Java测试代码段
Java位运算(移位、位与、或、异或、非)原创 2017-03-15 11:56:14 · 774 阅读 · 0 评论 -
Java queue系列
java queue原创 2017-03-15 17:51:44 · 772 阅读 · 0 评论 -
ThreadLocal对SimpleDataFormat的使用
package threadLocal;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;/** * ThreadLocal使用方法1 * * @author mxp * */public原创 2017-03-13 12:00:27 · 1275 阅读 · 0 评论 -
Java字节码操纵技术
大家可能已经非常熟悉下面的处理流程:将一个“.java”文件输入到Java编译器中(可能会使用javac,也可能像ANT、Maven或Gradle这样的构建工具),编译器对其进行分析,最终生成一个或多个“.class”文件。图1:什么是Java字节码?如果从命令行中运行构建,并启用verbose的话,我们能够看到解析文件直到生成“.class”文件这一过程的输出。jav转载 2017-03-20 20:09:54 · 1944 阅读 · 0 评论 -
java 说明
1、方法f(T... a){} -------------》参数的含义是: 参数类型为T类型,可以有1个或多个T类型的参数。这是个泛型。原创 2012-05-10 18:39:47 · 534 阅读 · 0 评论