![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JSE
chenlly99
专注LBS轨迹大数据挖掘,数据仓库建模,基于Hadoop集群的超大规模分布式计算。
展开
-
Java常用命令
jmapjdk安装后会自带一些小工具,jmap命令主要用于打印指定Java进程的共享对象内存映射或堆内存细节。jmap命令可以获得运行中的jvm的堆的快照,从而可以离线分析堆,以检查内存泄漏,检查一些严重影响性能的大对象的创建,检查系统中什么对象最多,各种对象所占内存的大小等等。JVM内存大部分新对象在Eden Space上分配,当Eden Space满了,则要用到Survivor Sp...原创 2019-01-07 20:06:53 · 4558 阅读 · 0 评论 -
Java 异常处理
一、异常基本结构在处理方法时有两种选项要么就try-catch-finally捕获异常(handle),要么就声明异常抛出(declare).try-catch-finally 规则:catch 与特定异常类的类型相关一个try 可能有多个catch 块,但是只将执行一个处理块,法则:要按从最具体到最一般的顺序组织处理块。除如下情况,总将执行finally 块作为结束原创 2010-06-12 10:20:00 · 1089 阅读 · 0 评论 -
String详解
String 类是非可变类(对象一旦创建了就不能够改变其内在状态了),根据书Effective java中说到,避免创建重复的对象原则。多个引用使用同一个对象而互相不影响。String S=new String("kill"); 构造函数来创建字符串,如果所创建的字符串在String Pool 中不存在则调用构造函数创建全新的字符串,如果所创建的字符串在字符串缓存池中已有则再拷贝一份到 J原创 2008-11-19 15:35:00 · 636 阅读 · 0 评论 -
Java中的值传递
在Java中方法参数的传递,都是值传递,对象传递是地址 ,基本数据类型传递的是值。地址和值都值。下面以一个例子来看内存中的数据变化情况package com.mapbar.util;/** * * Class Test.java * * Description * * Company mapbar * * author Chenll E-mail: chenll原创 2009-09-24 10:00:00 · 590 阅读 · 0 评论 -
Instancof详解
instanceof是Java的一个二元操作符,和==,>, 应用1:public class Bill {//省略细节}public class PhoneBill extends Bill {//省略细节}public class GasBill extends Bill {//省略细节}在处理程序里有一个方法,接受一个Bill类型的对象,计算金额。假设两种账单计算方法原创 2009-04-23 17:20:00 · 895 阅读 · 0 评论 -
Java编程规范
一、代码整体结构1.1 package com...(com.opendate.swjaynw.config)1.2 import java.* -> javax.* -> 中间件、库等提供的package -> 程序中的package1.3 注释 class name description author date1.4 类名 静态常量 如无设计上的原创 2008-11-19 15:26:00 · 580 阅读 · 0 评论 -
Java I/O工作机制及优化
一、Java I/O 操作类分组1.基于字节操作的 I/O 接口:InputStream 和 OutputStream2.基于字符操作的 I/O 接口:Writer 和 Reader3.基于磁盘操作的 I/O 接口:File4.基于网络操作的 I/O 接口:SocketI/O 的核心问题要么是数据格式影响 I/O 操作,要么是传输方式影响 I/O 操作,也就是将什么样的数据写到原创 2012-07-27 10:49:54 · 2085 阅读 · 0 评论 -
Java I/O 基本操作
Java中Inputstream与Reader的区别Reader支持16位的Unicode字符输出,InputStream支持8位的字符输出。Reader和InputStream分别是I/O库提供的两套平行独立的等级机构,InputStream、OutputStream是用来处理8位元的流,(字节流)Reader、Writer是用来处理16位元的流。 (字符流)而在JAVA原创 2009-05-07 23:09:00 · 741 阅读 · 0 评论 -
Java中的中文编码问题
(1)、为什么要编码由于人类的语言有太多,因而表示这些语言的符号太多,无法用计算机中一个基本的存储单元byte 来表示,因而必须要经过拆分或一些翻译工作,才能让计算机能理解。所以总的来说,编码的原因可以总结为:1.计算机中存储信息的最小单元是一个字节即 8 个 bit,所以能表示的字符范围是 0~255 个2.人类要表示的符号太多,无法用一个字节来完全表示3.要解决这个矛盾必须原创 2012-07-26 15:39:17 · 2497 阅读 · 1 评论 -
《Think In Java》读书笔记(一)基础篇
一、 对象存储在那个地方 (1) 寄存器(register) 位于cpu内部,资源有限由程序编译的时候根据需求进行分配(2) 堆栈(stack) 位于RAM(Random Access Menory),通过堆栈指针分配内存,指针上移释放内存。下移分配内存。 JAVA编译器必须知道存储在堆栈中的数据确切的大小和生命周期,包括存储基本数据类型和对象引用类型(3) 堆(heap)原创 2009-05-01 08:47:00 · 869 阅读 · 0 评论 -
《深入java虚拟机》读书笔记
一、java体系结构 1、java程序设计语言 2、java class 文件格式 3、java 应用编程接口(API) 4、java 虚拟机 a、java虚拟机和API 一起组成一个平台,java虚拟机的任务是装载class文件并且执行其中的字节码。 执行引擎分类 (1) 一次性解释字节码。 (2) 即使编译器(just-in-time compile原创 2010-10-11 17:53:00 · 3806 阅读 · 3 评论 -
java 比较器的使用
对于一个实现了Comparable接口的对象,该接口只能实现一次。如果在一个集合里面需要使用id排序,而在另外一个集合里需要按名字排序这时就需要在这个集合里面指定比较器。Comparable接口声明了compareTo(Object o)方法Comparator 接口声明了compare(Object o1,Object o2)方法eg:第一个树集是按照对象默认的id排序,第二个树原创 2009-10-14 16:18:00 · 7468 阅读 · 1 评论 -
枚举类型-enum使用
枚举就是要让某个类型的取值只能为若干个固定值中的一个,否则编译器就会报错。枚举类型可以让编译器在编译的时候控制源程序中填写的非法值。eg:public class EnumTest { public enum Color { red, green, yellow // 定义一个枚举类,其中每个元素都是该类的实例对象。 } // 带有自定义方法的枚举类定义原创 2010-05-23 17:40:00 · 750 阅读 · 0 评论 -
JVM 监控
内存监控方法jps -l 输出完全的包名,主类名,jar完全路径名jps -v 显示jvm参数jps lv 192.168.6.33 java进程,显示jvm参数,显示完全的包名,主类名,jar完全路径注意: 192.168.6.33主机要启jstatd 否则报错RMI Registry not available at 192.168.6.33:1099Connectio原创 2011-11-29 17:27:42 · 3671 阅读 · 0 评论 -
多线程-synchronized
首先搞清楚一个问题:Runnable和Thread的区别在java中可有两种方式实现多线程。a、继承Thread类,b、实现Runnable接口;a方式只能继承一个父类,b方式避免单继承的局限,一个类可以继承多个接口。b方式适合于资源的共享。重点讲解一下资源共享。以卖票程序为例class MyRunnable implements Runnable { private原创 2014-01-17 15:55:29 · 1005 阅读 · 0 评论 -
ThreadPoolExecutor线程池
(1)、定义: public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit uni原创 2013-12-31 18:34:41 · 2245 阅读 · 0 评论 -
消费者和生产者问题
线程四个状态:start、running、 waiting、 stop。即新生状态,运行状态,阻塞状态,死亡状态。对于游戏厅里的情况有:正在玩游戏的人,在排队的人,在沙发上休息的人,在宿舍休息的人四种情况。Object.wait() :到沙发上去休息。其他人上游戏机玩,适当时候被叫醒。但得等别人玩够了交出凳子时才能再继续玩。(对不起,虽然我叫醒了你,但你的让我玩完你才能玩)Objec原创 2008-11-18 18:02:00 · 1001 阅读 · 1 评论 -
《Think In Java》读书笔记(二)多线程
一、多线程基本概念 独占:通过阻止多个并发行为间的有害干扰来维护状态的一致性。通常使用异步方法sychronized 状态依赖:触发,阻止,延迟,恢复,某些行为是由一些对象是否处在这些行为可能成功或者已经 成功的状态决定的。主要通过监视器(monitor)实现 object.wait object.notify, object.notifyAll 客户Client: Client原创 2010-04-30 02:19:00 · 2084 阅读 · 0 评论 -
《重构-改善既有的代码设计》读书笔记
(一):重新组织自己的函数 问题:过长函数(Long Method) 往往需要我们通过手法提炼函数(Extract Method),把一段代码从原函数里面提炼出一段代码放入一单独函数中。遇到的问题主要有 临时变量问题(Temp variable matter) 和参数问题(Parameter matter), (1)、在处理临时变量问题时我们提供(replace temp with q原创 2009-07-31 09:39:00 · 1871 阅读 · 1 评论 -
Java 内存分配及容量扩充
一、Java 进程的内存使用当运行一个Java应用程序时,Java 运行时会创建一个操作系统进程,作为操作系统进程,Java 运行时面临着与其他进程完全相同的内存限制架构提供的内存寻址能力依赖于处理器的位数,举例来说,32位或者64位进程能够处理的位数决定了处理器能寻址的内存范围:32位提供了 2^32 的可寻址范围,也就是 4,294,967,296 位,或者说 4GB。而 64 位处理原创 2012-08-02 15:19:39 · 10341 阅读 · 0 评论 -
JAVA对图片进行格式检查
1)、判断文件的扩展名是否是要求的图片扩展名不过这种方式非常的不妥,别人稍微的把一个不是图片的文件的扩展名修改为图片的扩展名,就绕开了你的这种校验,2)、根据文件的前面几个字节 即常说的魔术数字进行判断魔术数字,指定是文件的最开头的几个用于唯一区别其它文件类型的字节,有了这些魔术数字,我们就可以很方便的区别不同的文件比如,一个JPEG文件,它开头的一些字节可能是类似这样的”ffd8原创 2012-07-13 11:38:21 · 1992 阅读 · 1 评论 -
JDBC操作Clob,Blob字段
最近和别人做了个东西,关系到操作大字段Clob和Blob字段,虽然做完了,但感觉还是意犹未尽,在今天下午特意总结了一下,写了差不多三百行代码.都调试过.收获也不小.说明1:首先所有的文件都是以二进制存储 2:二进制文件有.doc .xls .jpg 文本文件有 .txt .html .xml先在oracle数据库中建一张表用与测试create t原创 2008-11-19 16:05:00 · 3361 阅读 · 0 评论 -
类加载器及反射机制(二)-根据对象属性读取属性值
需求:根据表头列,显示列表内容。每一列在列表中的顺序可以随时调整。 idnameagescore1c12380.62c224763c32540.9 idnamescoreage1c180.6232c276243c340.925 package cn.com.chenlly;import java.lang.reflect.Field;import java.util.ArrayLis原创 2010-01-21 11:29:00 · 1160 阅读 · 0 评论 -
BigDecimal 的舍入模式
eg:BigDecimal x1b = new BigDecimal(54D);BigDecimal x2b = new BigDecimal(20D);double x = ((x1b.add(x2b)).divide(new BigDecimal("2"),6,RoundingMode.HALF_UP)).doubleValue();即:商=被除数.devide(除数,保留小数位数原创 2011-06-30 09:33:00 · 6795 阅读 · 0 评论 -
匿名内部类、回调、和事件驱动
一、内部类的作用域:(1)、一个内部类的对象能够访问创建它的对象的实现,包括私有数据。(2)、内部类对于同一个包中的其它类来说,内部类能够被隐藏起来。内部类不管方法的可见性如何,哪怕是public 的其它类都无法使用它。(3)、内部类对象通过‘外部类名.this.xxx’的形式访问外部类的属性与方法。(4)、外部类可以直接使用内部类的对象。 pouter po =原创 2011-06-03 11:57:00 · 2282 阅读 · 1 评论 -
大学期间经常编写的小程序
(1)企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成原创 2009-09-10 23:33:00 · 984 阅读 · 0 评论 -
泛型设计中的通配符
import java.util.LinkedList;/** * @ Class GenericDemo.java * @ Description 泛型设计中的通配符 * @ Company OpenData * @ author Chenlly E-mail: Chenlly99@Gmail.com * @ Version 1.0 * @ Date 2009-6-17 下午01原创 2009-06-25 10:44:00 · 606 阅读 · 0 评论 -
sun 认证
1、入门级:(1)Sun认证Java助理程序员(一次考试)J2SE技术- Sun Certified Java Associate (SCJA)(2)Sun认证Java程序员(一次考试)- Sun Certified Java Programmer (SCJP)(3)Sun认证Java开发员(考生必须完成两项基本作业:编程作业和论文考试)- Sun Certified Ja原创 2009-08-20 10:37:00 · 1421 阅读 · 0 评论 -
Java 集合框架
总体分三类(Collecton)Set、 List和 Map 。整体接口框架图: 分类: Set 负责采集元素不包括元素的数量和顺序,所以不能重复。所以没有size()方法,要想遍历只能是用java.util.Iterator集合。List 是一个元素序列包含元素的顺序和数量,是可以重复的。Map 是一个键值和属性的关联。 Collection原创 2008-11-19 13:21:00 · 920 阅读 · 0 评论 -
Java深度历险
如果安装JDK1.3那么安装程序一定会同时安装两套JRE。一套位于 jdk/jre目录一套位于program files/JavaSoft目录如果是JDK 1.4可以选择是否安装program files/java目录下的jre,但是jdk安装目录下的jre这套jre必须安装JRE与PC比较JRE: java类函数库>原生函数库.dll>JAVA虚拟机(jvm.dll)>帮助函转载 2008-11-19 16:09:00 · 2434 阅读 · 1 评论 -
类加载器及反射机制(三)-ClassLoader
(1)、java.lang.Class 概念:Java程序在运行时,Java运行时系统一直对所有的对象进行所谓的运行时类型标识,记录每个对象所属的类,有哪些属性和方法,选定那些方法去执行。这些记录都保持在一个是Class类里面。Class类封装一个对象和接口运行时的状态,当装载类原创 2010-07-10 10:07:00 · 1524 阅读 · 1 评论 -
类加载器及反射机制(一)-基础
(1)、java.lang.Class 类表示正在运行的 Java 应用程序中的类和接口。通过getClass()或者静态方法可去取得Class对象。 如:String str="HelloWorld". java.lang. Class strClass=原创 2011-07-14 10:11:13 · 1136 阅读 · 4 评论 -
注解
(1)、注解的基本概念jdk1.5 注解 java.lang.Annotation注解告诉编译器或者开发工具改怎么做,一个注解就是一个类。加了注解等于为程序加了某种标记。编辑器或者开发工具或者程序通过反射机制来了解你的类,及各种元素上有何种标记,然后就去干某种事情,标记可以加在包,类,字段,方法,方法参数,及局部变量上面。@deprecated //标示方法过期@overri原创 2010-06-20 21:53:00 · 1741 阅读 · 0 评论 -
浅谈java 对象克隆
我们在编码过程经常会碰到将一个对象传递给另一个对象,java中对于基本型变量采用的是值传递,而对于对象比如bean传递时采用的是应用传递也就是地址传递,而很多时候对于对象传递我们也希望能够象值传递一样,使得传递之前和之后有不同的内存地址package com.mapbar.clone;import java.io.ByteArrayInputStream;import java.io.Byt原创 2012-04-01 10:43:08 · 1146 阅读 · 0 评论 -
unicode和汉字互转
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码(定长码),也是一种前缀码。它可以用来表示Unicode标准中的任何字符 /** *原创 2012-01-06 13:22:22 · 3852 阅读 · 0 评论 -
Log4j 日志级别
日志记录器(Logger)是日志处理的核心组件。log4j具有5种正常级别(Level)。日志记录器(Logger)的可用级别Level (不包括自定义级别 Level),static Level DEBUG DEBUG Level指出细粒度信息事件对调试应用程序是非原创 2011-09-07 15:08:28 · 2566 阅读 · 0 评论 -
Serializable
Serizlizable 作用对于一个存在于Java虚拟机中的对象来说,其内部的状态只保持在内存中。JVM停止之后,这些状态就丢失了。在很多情况下,对象的内部状态是需要被持久化下来的。提到持久化,最直接的做法是保存到文件系统或是数据库之中。比如:对象关系映射(Object-r原创 2011-09-04 16:56:34 · 16802 阅读 · 0 评论 -
Java SE 5 新特性
发布日期: 新特性(1)、 循环for (type variable : array){ body} (2)、泛型List arrayList = new ArrayList(); arrayList.get(i)原创 2011-08-03 14:27:33 · 774 阅读 · 0 评论 -
Java SE 7 新特性
发布日期:2011-07-28 新变化:1. String类型可用于switch语句2. 支持二进制常量,且能在数字中使用下划线进行分隔,例如,long creditCardNumber = 1234_5678_9012_3456L3. 简化的可变长参数方法的调用原创 2011-08-03 09:49:57 · 803 阅读 · 0 评论 -
Java SE 6 新特性
发布日期:2006 年底新特性:在 API 库方面的新特性显得不太多,主要是在在 脚本,Web service,XML,编译器 API,数据库,JMX,网络和 Instrumentation 方面都有不错的新特性和功能加强。(1)、HTTP 增强 a原创 2011-08-03 13:57:26 · 771 阅读 · 0 评论