自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (9)
  • 收藏
  • 关注

转载 java 中int与byte数组转换详解

1、与运算符的理解(&):     参加运算的两个数据,按二进位进行“与”运算。如果两个相应的二进位都为1,则该位的结果值为1,否则为0。即 0&0=0;0&1=0;1&0=0;1&1=1;例子:int x = 62255550; y =0xff;           转二进制:x = 62255550 = 11101101011111000110111110;y  = 0xFF

2016-08-16 17:21:11 716

原创 jvm常用优化方案和方法

新生代 GC(Minor GC):指发生在新生代的垃圾收集动作,因为 Java 对象大多都具备朝生夕灭的特性,所以 Minor GC 非常频繁,一般回收速度也比较快。 老年代 GC(Major GC / Full GC):指发生在老年代的 GC,出现了 Major GC,经常会伴随至少一次的 Minor GC(但非绝对的,在 ParallelScavenge 收集器的收集策略里就有直接进行 M

2016-04-25 10:10:04 2612

原创 jvm优化-垃圾收集器的类型

分类依据线程数:串行垃圾回收器和并行垃圾回收器依据工作模式:并发垃圾回收器和独占垃圾回收器依据碎片处理:压缩垃圾回收器和非压缩垃圾回收器依据分代:新生代垃圾回收器和老年代垃圾处理器评价GC策略的指标可以用下列指标评价一个垃圾处理器的好坏: - 吞吐量:应用程序所花费的时间和系统总运行时间的比值 - 垃圾回收器负载:垃圾器回收时间与系统运行时间的比 - 停顿时间:垃圾回收器正在运

2016-04-25 09:01:55 423

原创 jvm调优-垃圾回收算法

java垃圾回收器需要解决的主要问题:哪些对象需要回收?何时回收这些对象?如何回收这些对象?1:引用计数法引用计数法是最古老的算法,对于一个对象A,只要有一个对象引用A,引用计数器就加1,当引用失效时则减1。只要引用计数器的值为0,则对象A就不可能再被使用。 实现方法: 为每个对象配置一个整型的计数器即可。 但这个实现存在一个问题,即无法处理循环引用的情况。因此,java回收机制没有采

2016-04-24 23:04:26 537

原创 JVM调优-java虚拟机内存模型及参数设置

java虚拟机内存模型主要包括:程序计数器、虚拟机栈、本地方法栈、java堆、方法区。1:程序计数器程序计数器是一块很小的内存,每一个线程都必须用一个独立的程序计数器,用于记录下一条要运行的指令。各个线程的计数器之间不相互影响,独立工作,是一个线程的私有的内存模型。2:java虚拟机栈java虚拟机栈也是线程私有的内存空间,它和java程序在同一时间创建,它保存方法的局部变量、部分结果,并参与方法的

2016-04-24 21:41:31 836

原创 java NIO-Buffer

基本概念一个用于特定基本类型数据的容器。缓冲区是特定基本类型元素的线性有限序列。除内容外,缓冲区的基本属性还包括容量、限制和位置:缓冲区的容量 是它所包含的元素的数量。缓冲区的容量不能为负并且不能更改。缓冲区的限制 是第一个不应该读取或写入的元素的索引。缓冲区的限制不能为负,并且不能大于其容量。缓冲区的位置 是下一个要读取或写入的元素的索引。缓冲区的位置不能为负,并且不能大于其限制。1:标记和

2016-04-23 21:25:09 413

原创 java NIO-Channel

基本简介Java NIO(New IO)是一个可以替代标准Java IO API的IO API(从Java 1.4开始),Java NIO提供了与标准IO不同的IO工作方式。Java NIO: Channels and Buffers(通道和缓冲区)标准的IO基于字节流和字符流进行操作的,而NIO是基于通道(Channel)和缓冲区(Buffer)进行操作,数据总是从通道读取到缓冲区中,或者从缓冲区

2016-04-23 17:45:37 2581

原创 java权限设置文件-java.policy

基本情况Policy对象可能有多个实体,虽然任何时候只能有一个起作用。当前安装的Policy对象,在程序中可以通过调用getPolicy方法得到,也可以通过调用setPolicy方法改变。Policy对象评估整个策略,返回一个适当的Permissions对象,详细说明哪些代码可以访问哪些资源。策略文件可以储存在无格式的ASCII文件或Policy类的二进制文件或数据库中2.JVM自带的java.po

2016-04-22 13:24:01 12925

原创 java安全-安全管理器

基本概念安全管理器是一个负责控制具体操作是否允许执行的类,它主要负责检查的操作包括如下内容:创建一个新的类加载器;退出虚拟机使用反射访问另一个类的成员访问本地文件打开socket连接启动打印作业访问系统剪贴板打开一个顶层窗口java.lang.SecurityManager类包含了很多checkXXXX方法,SecurityManager 中其他所有 check 方法的默认实现都是调

2016-04-22 10:51:13 881 1

转载 JavaBean详解

java内省(Introspector)内省(Introspector) 是Java 语言对JavaBean类属性、事件的一种缺省处理方法。   JavaBean是一种特殊的类,主要用于传递数据信息,这种类中的方法主要用于访问私有的字段,且方法名符合某种命名规则。如果在两个模块之间传递信息,可以将信息封装进JavaBean中,这种对象称为“值对象”(Value Object),或“VO”。方法比较

2016-04-22 09:02:19 2542

转载 java安全-线程上下文类加载器

1 线程上下文类加载器线程上下文类加载器(context class loader)是从 JDK 1.2 开始引入的。类 java.lang.Thread中的方法 getContextClassLoader()和 setContextClassLoader(ClassLoader cl)用来获取和设置线程的上下文类加载器。如果没有通过 setContextClassLoader(ClassLoade

2016-04-21 23:00:50 1080

转载 java安全-类加载器

1 基本信息每个开发人员对java.lang.ClassNotFoundExcetpion这个异常肯定都不陌生,这背后就涉及到了java技术体系中的类加载。Java的类加载机制是技术体系中比较核心的部分,虽然和大部分开发人员直接打交道不多,但是对其背后的机理有一定理解有助于排查程序中出现的类加载失败等技术问题,对理解java虚拟机的连接模型和java语言的动态性都有很大帮助。2 Java虚拟机类加载

2016-04-21 21:55:53 1096

原创 java-XML文件处理

第一种:DOMDOM的全称是Document Object Model,也即文档对象模型。在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称DOM树),应用程序正是通过对这个对象模型的操作,来实现对XML文档数据的操作。通过DOM接口,应用程序可以在任何时候访问XML文档中的任何一部分数据,因此,这种利用DOM接口的机制也被称作随机访问机制。 DOM接口提供了一种

2016-04-21 15:32:28 490

原创 java并发-Callable与Future

基本概念:Callable 接口类似于 Runnable,两者都是为那些其实例可能被另一个线程执行的类设计的。但是 Runnable 不会返回结果,并且无法抛出经过检查的异常。Future 表示异步计算的结果。它提供了检查计算是否完成的方法,以等待计算的完成,并获取计算的结果。计算完成后只能使用 get 方法来获取结果,如有必要,计算完成前可以阻塞此方法。取消则由 cancel 方法来执行。还提

2016-04-20 22:00:21 279

原创 java并发-ThreadLocal

##基本概念ThreadLocal提供了线程局部 (thread-local) 变量。这些变量不同于它们的普通对应物,因为访问某个变量(通过其 get 或 set 方法)的每个线程都有自己的局部变量,它独立于变量的初始化副本。ThreadLocal 实例通常是类中的 private static 字段,它们希望将状态与某一个线程(例如,用户 ID 或事务 ID)相关联。每个线程都保持对其线程局部

2016-04-20 20:18:06 429

原创 java并发-Semaphore

一个计数信号量。从概念上讲,信号量维护了一个许可集。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放一个正在阻塞的获取者。但是,不使用实际的许可对象,Semaphore 只对可用许可的号码进行计数,并采取相应的行动。public class Semaphoreextends Object implements Serial

2016-04-20 19:19:01 309

转载 java并发-Condition与Object.wait()、Object.notify()

在前面我们将了很多关于同步的问题,然而在现实中,需要线程之间的协作。比如说最经典的生产者-消费者模型:当队列满时,生产者需要等待队列有空间才能继续往里面放入商品,而在等待的期间内,生产者必须释放对临界资源(即队列)的占用权。因为生产者如果不释放对临界资源的占用权,那么消费者就无法消费队列中的商品,就不会让队列有空间,那么生产者就会一直无限等待下去。因此,一般情况下,当队列满时,会让生产者交出对临界资

2016-04-20 10:56:33 804

原创 java并发-原子性

原子性就是指该操作是不可再分的。 java.util.concurrent.atomic中有一组使用无锁算法实现的原子操作类。AtomicInteger、AtomicBoolean、AtomicLong 外还有 AtomicReference 。它们分别封装了对整数、整数数组、长整型、长整型数组和普通对象的多线程安全操作。 这些都是居于CAS算法实现的。CAS即:Compare and Swa

2016-04-20 09:54:54 546

原创 java并发-Volatile关键字

Volatile关键字最大的特点是,在多线程中保持变量的可见性。这个可见性主要是指变量在主存中的可见性。因此,有必要了解java内存模型。java内存模型java中每个线程有一块工作内存区,存放着被所有线程共享的主内存中的变量的值的拷贝。一个线程可以执行的操作有:使用(use)、赋值(assign)、装载(load)、存储(store)、锁定(lock)、解锁(unlock)。 主内存可执行的操

2016-04-20 08:55:24 587 1

原创 java并发编程-Lock

为何有了synchronized还要有Locksynchronized只有等当前线程执行完,才能释放锁,或者虚拟机出错时释放资源。synchronized可能造成其它线程长时间的等待,比如获取锁的线程在执行耗时的IO操作,那么其它需要该资源的线程只能长时间的等待。synchronized无法知道当前线程获取锁是否成功。Lock简介1:基本概念Lock 实现提供了比使用 synchroniz

2016-04-19 21:13:13 1761

转载 java并发编程-synchronized

虽然多线程编程极大地提高了效率,但是也会带来一定的隐患。比如说两个线程同时往一个数据库表中插入不重复的数据,就可能会导致数据库中插入了相同的数据。今天我们就来一起讨论下线程安全问题,以及Java中提供了什么机制来解决线程安全问题。一.什么时候会出现线程安全问题在单线程中不会出现线程安全问题,而在多线程编程中,有可能会出现同时访问同一个资源的情况,这种资源可以是各种类型的的资源:一个变量、一个对象、一

2016-04-19 17:05:09 411

原创 java线程

线程的概念线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程

2016-04-19 10:29:16 380

原创 java集合-EnumMap与EnumSet

一:java枚举简介1:基本概念:用enum定义枚举类默认继承了java.lang.Enum类而不是继承了Object类。其中java.lang.Enum类实现了java.lang.Serializable和java.lang.Comparable两个接口枚举类的构造函数只能使用private访问修饰符,如果省略了其构造器的访问控制符,则默认使用private修饰枚举类的所有实例必须在枚举类中

2016-04-18 20:18:12 493

原创 java集合-TreeSet

一:基本概念TreeSet基于 TreeMap 的 NavigableSet 实现。使用元素的自然顺序对元素进行排序,或者根据创建 set 时提供的 Comparator 进行排序,具体取决于使用的构造方法。此实现为基本操作(add、remove 和 contains)提供受保证的 log(n) 时间开销。如果要正确实现 Set 接口,则 set 维护的顺序(无论是否提供了显式比较器)必须与

2016-04-18 14:58:19 295

原创 java集合-TreeMap

首先学习了TreeMap使用的数据结构,红黑数: 参照如下两篇文章:平衡查找树之2-3树红黑树TreeMap的源码分析,这位博主分析的很详细,原文点击 使用TreeMap 需要注意:根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序;TreeMap不是同步的。如果多个线程同时访问一个映射,并且其中至少一个线程从结构上修改了该映射,则其必须 外部同步;

2016-04-18 13:18:22 351

原创 java集合-HashMap(JDK1.8)

一、基本概念HashMap基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。以前JDK中HashMap采用的是位桶+链表的方式,即我们常说的散列链表的方式,而JDK1.8中采用的是位桶+链表/红黑树的方式,也是非线程安全的。当某个位桶的链表的长度达到某个阀值的时候,这个链表就将转换成红黑树。 注意事项:HashMap 是一个散列表,它存储的

2016-04-17 17:30:53 4185 1

原创 java集合-HashSet

基本概念和实例HashSet类,是存在于java.util包中的类。同时也被称为集合,该容器中只能存储不重复的对象。 HashMap的实现过程,对于HashSet而言,它是基于HashMap来实现的,底层采用HashMap来保存元素。 结构图:(来源互联网) 实例1:Hashset遍历import java.util.HashSet;import java.util.Iterator;p

2016-04-17 11:28:51 456

原创 java 集合-ArrayDeque

基本概念及实例ArrayDeque类实现Queue接口。对于数组实现的Deque来说,数据结构上比较简单,只需要一个存储数据的数组以及头尾两个索引即可。由于数组是固定长度的,所以很容易就得到数组的头和尾,那么对于数组的操作只需要移动头和尾的索引即可。ArrayDeque并不是一个固定大小的队列 , 每次队列满了以后就将队列容量扩大一倍(doubleCapacity()),因此加入一个元素总是能成功

2016-04-17 10:40:28 626

原创 java集合-LinkedList

LinkedList类是双向列表,列表中的每个节点都包含了对前一个和后一个元素的引用. 1:LinkedList提供了4个不同位置的添加数据的方法,分别为链头插入,链尾插入,节点前插入,节点后插入 2:由于LinkedList是双向链表,在查询数据方面提供了“从前往后”和“从后往前”两个查询方法 3:如果数据量大,删除频繁,只能用LinkedList。 特别注意: list.get(i),

2016-04-17 09:41:41 3064

原创 java集合-ArrayList

1:基本简介ArrayList 是一个数组队列,相当于 动态数组。与Java中的数组相比,它的容量能动态增长。它继承于AbstractList,实现了List, RandomAccess, Cloneable, java.io.Serializable这些接口。 ArrayList 继承了AbstractList,实现了List。它是一个数组队列,提供了相关的添加、删除、修改、遍历等功能。Ar

2016-04-16 22:39:59 3423

原创 java泛型III-通配符

通配符 — 使用一个奇怪的问号表示类型参数 — 是一种表示未知类型的类型约束的方法。通配符在类型系统中具有重要的意义,它们为一个泛型类所指定的类型集合提供了一个有用的类型范围。 介绍通配符的使用前先定义几个类:public class Person { private String name; public Person(String name) { thi

2016-04-16 20:52:22 493

原创 java泛型II-泛型中存在的约束与局限性

java泛型中存在一定的约束和局限性,这些限制的主要原因是java虚拟机中对泛型的处理机制有关,即类型擦除。 1:不能用基本类型实例化类型参数 主要原因就是:类型擦除引起的,ArrayList会被转为Object,但double没有继承object。 如: ArrayList<Double> list=new ArrayList<>();//正确 ArrayList<dou

2016-04-16 17:21:46 1269

原创 java泛型基础-I

java泛型概念及作用 泛型是JDK 1.5的一项新特性,它的本质是参数化类型(Parameterized Type)的应用,那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口和泛型方法。ja

2016-04-16 15:37:37 651

原创 java 三种调用机制(同步、回调、异步)

java中存在三种调用机制1:同步调用:一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用 2:回调:一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口; 3:异步调用:一种类似消息或事件的机制,不过它的调用方向刚好相反,接口的服务在收到某种讯息或发生某种事件时,会主动通知客户方(即调用客户方的接口 具体说来:就是A类中调用B类中的某个方法C,然后B类中反过来调

2016-04-15 22:35:07 32824

转载 java 内部类详解

**Java内部类详解**  说起内部类这个词,想必很多人都不陌生,但是又会觉得不熟悉。原因是平时编写代码时可能用到的场景不多,用得最多的是在有事件监听的情况下,并且即使用到也很少去总结内部类的用法。今天我们就来一探究竟。下面是本文的目录大纲:   内部类基础深入理解内部类内部类的使用场景 原文地址:http://www.cnblogs.com/dolphin0520/p/3811445

2016-04-15 20:58:09 356

转载 Java线程面试题 Top 50

不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发、调试、优化经验,所以线程相关的问题在面试中经常会被提到。在典型的Java面试中, 面试官会从线程的基本概念问起, 如:为什么你需要使用线程, 如何创建线程,用什么方式创

2016-04-15 20:10:56 348

原创 java反射详解

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2016-04-15 15:01:30 592

arcgis linux下授权文件

arcgis linux下授权文件,亲测可以使用,安装教程参考如下地址:http://blog.csdn.net/zssai2015/article/details/49705527

2017-12-06

中南大学2007-2013地理信息系统考研真题

本资源是中南大学地理信息系统的考研真题,有需要的可以下载,货真价实。

2014-06-12

java+Arcengine简单的地图操作

简单的java+ArcEngine实例,实现地图的加载和基本操作。

2013-11-08

中南大学2013年地理信息系统(GIS)考研真题

中南大学2013年地理信息系统考研真题,确保正确资料~~~

2013-11-06

gdalJAVA配置dll和jar

jar和dll包括的很全,亲自试验成功~~~ 配置步骤参考我的博客~~~

2013-10-30

遗传算法实例

通过举例计算第四点到其它三点的最小距离来说明遗传算法的实际应用~~

2013-06-21

Memcached Providers 1.2 .NET 2.0

mamcache是分布式缓存机制,Provider有助于.net 的开发

2013-05-03

空空如也

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

TA关注的人

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