
Java
文章平均质量分 58
Crazy-Horse
非典型职业性程序员,毕业以来一直从事软件研发工作,现自认为可以兼任半瓶水晃荡的技术经理。
展开
-
Java移位运算符详解实例--左移位运算符<<、右移位运算符>>>、带符号的右移位运算符>>
移位运算符也针对二进制的“位”,它主要包括:左移位运算符(>>)、带符号的右移位运算符(>>)。 1.左移运算符左移运算符用“public class data17{public static void main(String[] args){int a=2;int b=2;System.out.println("a 移位的结果是:"+(a}}转载 2017-04-25 12:14:12 · 1011 阅读 · 0 评论 -
java写文件时往末尾追加文件(而不是覆盖原文件),的两种方法总结
代码如下:import java.io.FileWriter;import java.io.IOException;import java.io.RandomAccessFile;public class AppendToFile { /** * A方法追加文件:使用RandomAccessFile */ public static void app原创 2013-10-21 17:02:54 · 10282 阅读 · 1 评论 -
当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
不能,一个对象的一个synchronized方法只能由一个线程访问。原创 2013-04-22 00:24:12 · 536 阅读 · 0 评论 -
总结:JMS简介
JMS(Java Messaging Service)是Java平台上有关面向消息中间件(MOM)的技术规范,它便于消息系统中的Java应用程序进行消息交换,并且通过提供标准的产生、发送、接收消息的接口简化企业应用的开发,翻译为Java消息服务。JMS是一种与厂商无关的 API,用来访问消息收发系统消息。它类似于 JDBC(Java Database Connectivity):这里,JD原创 2013-04-24 01:02:32 · 604 阅读 · 0 评论 -
JVM类加载—编译与泛型
java中的泛型,是伪泛型,只是简单的在API级别做了"模样",但是对于类的编译过程,则会导致泛型类型的擦除,即编译过程或者编译之后的文件中,最终泛型仍然以"原生类型"表示.即在运行时无法直接还原"泛型",java还支持了反射机制,为了让反射机制能够和"泛型"配合,那么java最终提供了Generic(例如GenericArrayType)和ParameterizedType来配合获得泛型(和参数原创 2015-07-20 16:22:24 · 1094 阅读 · 0 评论 -
Collection 和 Collections的区别
Collection是集合类的上级接口,继承与他的接口主要有Set 和List.Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作补充回答:Collection是个java.util下的接口,它是各种集合结构的父接口Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。原创 2013-04-21 16:02:05 · 616 阅读 · 0 评论 -
Java多态性的不同表现
方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了原创 2013-04-21 23:09:58 · 582 阅读 · 0 评论 -
java实现将一个键盘输入的阿拉伯数字转化成中文输出
(例如:输入:1234567 输出:一百二拾三万四千五百六拾七)用java语言实现,,请编一段程序实现! public class Reader { private String strNum; private String strNumChFormat; private String strNumTemp; private int intNumLen;原创 2013-04-22 01:23:40 · 2388 阅读 · 0 评论 -
关于try...catch...finally中return的疑惑(有待进一步探讨)
关于try...catch...finally里面的return一直是面试的一个热门考点。无非就分以下几个情况:1、当有finally语句并且try中有return,在执行到return(还未执行)的时候,会先执行finally里面的内容,然后再执行行try中的return。package com.and.java.demo;public class 测试 { pu原创 2013-04-21 15:19:48 · 420 阅读 · 0 评论 -
接口是否可继承接口? 抽象类是否可实现(implements)接口?
接口可以继承接口。抽象类可以实现(implements)接口。原创 2013-04-22 00:14:42 · 706 阅读 · 0 评论 -
svn:Attempted to lock an already-locked dir异常解决方法
update F:/sword/workspace/xfeq -r HEAD --force Attempted to lock an already-locked dirsvn: Working copy 'F:\sword\workspace\xfeq\jsmin\config' locked原创 2014-04-25 10:54:29 · 7577 阅读 · 0 评论 -
JVM运行时刻内存的分配详解
文字描述:jvm内存区域(JMM)有一块区域是jvm虚拟机栈,每一个线程运行时都有一个自己的线程栈,线程栈保存了线程运行时候变量值信息,且线程之间互不干扰。当线程访问某一个对象的值的时候,首先通过对象的引用找到该对象在对应的堆内存里的具体值,然后把堆内存里变量的具体值load到线程本地内存中,建立一个变量副本,之后,线程就不与该对象在堆内存里变量的值有任何关系,而是直接操作副本变量的值,然后再原创 2015-07-30 16:22:54 · 683 阅读 · 0 评论 -
java并发编程之CountDownLatch详解
最近遇到这样一个功能要求:假设现在有T1,T2,T3共3个线程,如何保证T4第4个线程在前3个线程执行完毕后再执行(jdk层面实现)?实现方式:使用CountDownLatch代码:CountDownLatchExample.javapackage com.ccr.common.thread.concurrent;import java.util.concurrent.Co原创 2015-07-29 11:59:18 · 756 阅读 · 0 评论 -
java内存溢出示例(堆内存、栈内存)
1、堆内存溢出示例:/** * Created by Chengrui on 2015/8/23. * java OutOfMemoryError test */public class Heap { public static void main(String[] args){ List list = new ArrayList();原创 2015-08-23 18:24:24 · 656 阅读 · 0 评论 -
java用volatile或AtomicBoolean实现高效并发处理 (只初始化一次的功能要求)
最近碰到一个这样的功能要求:实现高效并发处理,只初始化一次. 实现方式:1)原创 2015-07-28 19:56:12 · 3930 阅读 · 3 评论 -
Eclipse 浏览文件(直接打开workspace文件)插件:EasyExplorer 和 OpenExplorer
EasyExplorer 是一个类似于 Windows Explorer的Eclipse插件,它可以帮助你在不退出Eclipse的环境下浏览本地文件系统下载地址:从 http://sourceforge.net/projects/easystruts/http://ncu.dl.sourceforge.net/project/easystruts/Easy Explorer fo转载 2014-12-04 15:43:06 · 853 阅读 · 0 评论 -
Java中遍历Map的两种方法:keySet和entrySet
//方法一 Set set = map.keySet(); for (String s:set) { System.out.println(s+","+map.get(s)); } //方法二 Set> entryseSet=map.entrySet(); for (Map.Entry entry:entryseSet) { S转载 2014-05-06 17:23:02 · 507 阅读 · 0 评论 -
clob转换成String的方法总结
方法一:public final static String clob2String(CLOB clob){if (clob ==null ){return ;}StringBuffer sb = new StringBuffer(65535);//64KReader clobStream = null;try{clobStream = clob原创 2013-05-30 18:27:13 · 835 阅读 · 0 评论 -
Java的GC是什么? 为什么要有GC?
GC是垃圾收集器。Java 程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:System.gc()Runtime.getRuntime().gc()原创 2013-04-21 18:14:43 · 855 阅读 · 0 评论 -
abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
都不能原创 2013-04-22 00:09:04 · 580 阅读 · 0 评论 -
java单例模式详解
1、懒汉模式: 特点:lazy loading很明显,也就是在需要的时候才加载,也就是我们常说的延迟加载。(1)线程不安全:public class Singleton { private static Singleton instance; public static Singleton getInstance() { if (in原创 2015-06-13 18:39:11 · 554 阅读 · 0 评论 -
Windows下jdk环境变量配置
我安装的是JDK1.70(注意版本问题),环境配置:我的电脑-属性-高级-环境变量-系统变量(下面那个!!注意)新建-变量名JAVA_HOME, 变量值:C:\Program Files\Java\jdk1.7.0(你安装JDK的目录),点确定。新建-变量名CLASSPATH, 变量值:.;%java_home%\lib\dt.jar;%原创 2013-04-27 15:42:14 · 453 阅读 · 0 评论 -
JVM垃圾分代回收算法详解
注明,本文转载至:http://pengjiaheng.iteye.com/blog/524024为什么要分代 分代的垃圾回收策略,是基于这样一个事实:不同的对象的生命周期是不一样的。因此,不同生命周期的对象可以采取不同的收集方式,以便提高回收效率。 在Java程序运行的过程中,会产生大量的对象,其中有些对象是与业务信息相关,比如Http请求中的Ses转载 2015-07-24 18:43:26 · 632 阅读 · 0 评论 -
java可变参数使用总结
java1.5新特性中增加了可变参数: 特点: 适用于方法参数类型确定,数量不确定的情况。 注意:写法中...位于变量类型和变量名之间 ,前后有无空格都可以;一个方法最多只能有一个可变参数,且该可变参数只能是该方法的最后一个参数;调用方法的时候,可以给可变参数任意多个参数,也可以不给参数;在调用方法的时候,如果能够与固定参数的方法相匹配,也能够原创 2015-07-22 18:17:04 · 560 阅读 · 0 评论 -
java中对get和set方法的理解
首先,理解一下java面向对象编程中的封闭性和安全性。封闭性即对类中的域变量进行封闭操作,即用private来修饰他们,如此一来其他类则不能对该变量访问。这样我们就将这些变量封闭在了类内部,这样就提高了数据的安全性,当我们想要操作这些域变量怎么办呢?我们可以通过两种方法,第一中即通过public方式的构造器(或称构造函数),对象一实例化就对该变量赋值。第二种就是通过上面提到的set和get方法原创 2015-07-21 17:29:34 · 2974 阅读 · 0 评论 -
JVM类加载机制总结
一、类加载1、概述Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数,属性和方法等,Java允许用户借由这个Class相关的元信息对象间接调用Class对象的功能。 虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用原创 2015-07-20 15:09:54 · 494 阅读 · 0 评论 -
JVM类加载双亲委派模型
双亲委派模型 JVM并没有使用继承关系来组织这三种类加载器,而是采取了组合关系(即classLoader.setParent(...)). 工作过程:如果一个类加载器接收到了类加载的请求,它首先把这个请求委托给他的父类加载器去完成,每个层次的类加载器都是如此,因此所有的加载请求都应该传送到顶层的启动类加载器中,只有当父加载器反馈自己无法完成这个加原创 2015-07-20 15:56:02 · 478 阅读 · 0 评论 -
最常见到的runtime exception(运行时异常)
ArithmeticException, ArrayStoreException,BufferOverflowException, BufferUnderflowException, CannotRedoException,CannotUndoException, ClassCastException, CMMException,ConcurrentModificationException, D原创 2013-04-21 23:27:31 · 946 阅读 · 0 评论 -
Hashtable和HashMap用法联系与区别
Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Mapinterface的一个实现HashMap允许将null作为一个entry的key或者value,而Hashtable不允许还有就是,HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让原创 2013-04-22 00:55:32 · 487 阅读 · 0 评论 -
JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意思?
1、throws捕获并向外抛出异常2、throw抛出异常其中throws与throw的区别是:throws关键字通常被应用在声明方法时,用来指定可能抛出的异常。多个异常可以使用逗号隔开。当在主函数中调用该方法时,如果发生异常,就会将异常抛给指定异常对象。throw关键字通常用在方法体中,并且抛出一个异常对象。程序在执行到throw语句时立即停止,它后面的语句都不执行。通过throw抛出异原创 2013-04-24 00:46:42 · 2828 阅读 · 0 评论 -
Java的switch支持的数据类型
switch(expr1)中,expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。原创 2013-04-22 00:41:13 · 1193 阅读 · 0 评论 -
abstract class和interface有什么区别?
声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在原创 2013-04-22 00:07:03 · 464 阅读 · 0 评论 -
Java有没有goto?
Goto 是java的保留字,所以java中是没有goto,现在java中是暂时没有使用goto的。原创 2013-04-21 20:19:01 · 1031 阅读 · 0 评论 -
启动一个线程是用run()还是start()?
启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。原创 2013-04-22 00:21:59 · 445 阅读 · 0 评论 -
构造器Constructor是否可被重写?
构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。原创 2013-04-22 00:22:50 · 985 阅读 · 0 评论 -
java并发编程之volatile详解
引言:在多线程并发编程中synchronized和volatile都扮演着重要的角色,volatile是轻量级的synchronized,它在多线程开发中保证了共享变量的“可见性”,可见性的意思是当一个线程修改了一个共享变量时,其他的线程能读到这个修改的值。在某些情况下,volatile比synchronized的开销要更小。volatile的官方定义:java编程语言允许线程原创 2015-07-30 17:33:03 · 476 阅读 · 0 评论 -
eclipse反编译插件jad的安装(附:安装文件具体地址)
我们分为四步:1、下载eclipse插件:jadclipse_3.1.0.jar 网址: http://jadclipse.sourceforge.net/ 直接将jadclipse_3.1.0.jar 复制到eclipse的安装目录下的plugins目录下。注意:jadclipse_3.1.0.jar的版本与eclipse的platform版本号相关jadclips原创 2014-02-27 14:51:13 · 791 阅读 · 0 评论 -
java开发线程篇3:同步和异步有何异同,在什么情况下分别使用他们?举例说明。
如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。原创 2013-04-22 01:32:30 · 760 阅读 · 0 评论 -
List,Set,Map用法以及区别(详解)
List,Set,Map是否继承自Collection接口? 答:List,Set是,Map不是。 如图: Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ├Hashtable原创 2013-04-21 23:35:31 · 967 阅读 · 0 评论 -
error和exception有什么区别?
error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。原创 2013-04-21 23:28:50 · 395 阅读 · 0 评论