java SE
文章平均质量分 50
zhujiaxing666666
这个作者很懒,什么都没留下…
展开
-
JDK自带的native2ascii工具完全揭密
背景: 在做Java开发的时候,常常会出现一些乱码,或者无法正确识别或读取的文件,比如常见的validator验证用的消息资源(properties)文件就需要进行Unicode重新编码。原因是java默认的编码方式为Unicode,而我们的计算机系统编码常常是GBK等编码。需要将系统的编码转换为java正确识别的编码问题就解决了。原创 2012-12-17 15:24:35 · 373 阅读 · 0 评论 -
一个理解wait()与notify()的例子
问题如下: //分析这段程序,并解释一下,着重讲讲synchronized、wait(),notify 谢谢! class ThreadA { public static void main(String[] args) { ThreadB b=new ThreadB(); b.start(); System.out.p转载 2013-07-18 21:12:21 · 545 阅读 · 0 评论 -
阿里巴巴2010校园招聘技术类笔试试题
阿里巴巴2010校园招聘技术类笔试试题卷IJava开发、测试工程师1. 下列运算符中优先级别最高的是?A:&B:&&C:!=D:?:2: 若用数组S[0…n]作为两个栈S1和S2的存储结构,对任何一个栈只有当S全满时才不能做入栈操作。为这两个栈分配空间的最佳方案是 A:S1的栈底位置为0,S2的栈底位置为n+1转载 2013-07-21 18:08:08 · 2547 阅读 · 4 评论 -
AtomicInteger在实际项目中的应用
今天写代码,尝试使用了AtomicInteger这个类,感觉使用起来很爽,特别适用于高并发访问,下面贴一个简单的例子:Java代码 CashierContext类部分代码: private Map counter = new HashMap(); private void initCounter() {转载 2013-07-21 15:26:58 · 747 阅读 · 0 评论 -
尚学堂java SE学习笔记(未完待续)
1、关于递归,一定要注意函数调用顺序! 图1如上图:在执行f(n-1)+f(n-2)的过程中,先执行f(n-1)一直到f(n-1)有返回值才执行f(n-2)。2、 图2注意成员变量和局部变量的区别:关于成员变量见上图,但是在使用局部变量之前必须对之初始化!否则编译会报错(如果只是声明一个局部变量,而在以后的语句中不使用它的话就不会报错)!!3、 类是静态(代码)原创 2013-07-09 19:00:29 · 2440 阅读 · 0 评论 -
java不存在无符号类型
Java中的基本数据类型所占存储空间大小固定的,这是为了实现平台无关性,Java中的基本数据类型所占存储空间大小不随操作系统的变化而变化,这种属性使得java具有可移植性和平台无关性。Java中的数据类型都有正负之分,不存在无符号数。Java中布尔型占的存储空间的大小没有明确指定,仅定义为能够获取代表true或false的值。原创 2013-07-21 10:05:28 · 1356 阅读 · 2 评论 -
java易错知识点梳理
JavaJava的内存分配上,主要分4个块!一块是用来装代码的,就是编译的东西。一块是用来装静态变量的,例如用static关键字的变量,例如字符串常量。一块是stack,也就是栈,是用来装变量和引用类型的!但区别在于,装了变量以后,变量上是有值的,而引用类型本身在stack上是没有值的。昨日收获一块是heap,也就是堆!堆可以一句话概括,装new出来的东西! 所以综转载 2013-07-21 20:52:42 · 1619 阅读 · 0 评论 -
线程安全,有状态,无状态的对象
线程安全 如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。 或者说:一个类或者程序所提供的接口对于线程来说是原子操作或者多个线程之间的切换不会导致该接口的执行结果存在二义性,也就是说我们不用考虑同步的问题。 线程安全问题都是由全局变量及静态变量引起的转载 2013-08-20 15:18:40 · 1078 阅读 · 0 评论 -
有状态,无状态对象是什么概念
基本概念: 有状态就是有数据存储功能。有状态对象(Stateful Bean),就是有实例变量的对象 ,可以保存数据,是非线程安全的。在不同方法调用间不保留任何状态。无状态就是一次操作,不能保存数据。无状态对象(Stateless Bean),就是没有实例变量的对象 .不能保存数据,是不变类,是线程安全的。代码更好理解:Java代码 public转载 2013-08-20 15:19:37 · 1013 阅读 · 0 评论 -
局部变量是绝对的线性安全!
java中,每个线程执行时将会把局部变量放在各自栈帧的工作内存中,线程间不共享,故不存在线程安全问题。原创 2013-08-20 11:35:08 · 990 阅读 · 0 评论 -
java线程安全问题之静态变量、实例变量、局部变量
java多线程编程中,存在很多线程安全问题,至于什么是线程安全呢,给出一个通俗易懂的概念还是蛮难的,如同《java并发编程实践》中所说:写道给线程安全下定义比较困难。存在很多种定义,如:“一个类在可以被多个线程安全调用时就是线程安全的”。 此处不赘述了,首先给出静态变量、实例变量、局部变量在多线程环境下的线程安全问题结论,然后用示例验证,请大家擦亮眼睛,有错必究,否则转载 2013-08-20 11:42:42 · 753 阅读 · 0 评论 -
static变量
方法里不能定义static的变量,static的变量只能是成员变量。static方法只能调用statiic变量和static方法,但是普通方法可以调用static变量。原创 2013-08-20 11:52:49 · 583 阅读 · 0 评论 -
java判断字符串是否为数字
1用JAVA自带的函数public static boolean isNumeric(String str){ for (int i = str.length();--i>=0;){ if (!Character.isDigit(str.charAt(i))){ return false; } } return true; }2用正原创 2013-08-14 18:31:52 · 761 阅读 · 0 评论 -
三道Java算法面试题
下面是某些企业常见的算法面试试题,现总结如下,仅供学员参考与学习。1.比较两个字符串如果不等返回True?答案: Java代码 package com.test.kaoshi; public class StringDemo { private static String a = "abc";转载 2013-09-05 19:37:18 · 949 阅读 · 1 评论 -
java.util.Date和java.sql.Date的区别及应用
java.util.Date和java.sql.Date的区别及应用java.util.Date 就是在除了SQL语句的情况下面使用java.sql.Date 是针对SQL语句使用的,它只包含日期而没有时间部分它都有getTime方法返回毫秒数,自然就可以直接构建java.util.Date d = new java.util.Date(sqlDate.getTim转载 2013-09-23 13:13:42 · 631 阅读 · 0 评论 -
final 修饰的成员变量无默认值!
class Something {final int i;public void doSomething() {System.out.println("i = " + i);}}上边有问题吗?答案: 错。final int i是个final的instant variable (实例变量,或叫成员变量)。final的instant variable没有defa原创 2013-09-23 21:35:00 · 3140 阅读 · 0 评论 -
Throwable可以被抛出
1. 以下哪四个能使用throw抛出? ADEFA. ErrorB. EventC. ObjectD. ThrowableE. ExceptionF. RuntimeException原创 2013-09-23 23:15:20 · 5434 阅读 · 1 评论 -
Java常见异常(Runtime Exception )小结
参加去哪儿网特殊项目部面试,面试官上来就问说出你能知道的异样,然后说出来以后,问你每种异样发生的情况,比如什么时候会产生SQLException异常,你是怎么处理的? 后来感觉自己答的不好,遂到家后赶紧查漏补缺,找到一篇文章写的还不错,如下:转载自:http://www.cnblogs.com/qinqinmeiren/archive/2010/10/14/2151702.html原创 2013-09-25 11:55:07 · 1410 阅读 · 0 评论 -
notify()和notifyAll()主要区别
notify()和notifyAll()都是Object对象用于通知处在等待该对象的线程的方法。void notify(): 唤醒一个正在等待该对象的线程。void notifyAll(): 唤醒所有正在等待该对象的线程。两者的最大区别在于:notifyAll使所有原来在该对象上等待被notify的线程统统退出wait的状态,变成等待该对象上的锁,一旦该对象被解锁,他们就会去竞争。转载 2013-07-18 21:11:29 · 743 阅读 · 0 评论 -
sleep和wait的区别
首先:sleep是Thread的方法,wait和notify是Object的方法sleep是线程被调用时,占着cpu去睡觉,其他线程不能占用cpu,os认为该线程正在工作,不会让出系统资源,wait是进入等待池等待,让出系统资源,其他线程可以占用cpu,一般wait不会加时间限制,因为如果wait的线程运行资源不够,再出来也没用,要等待其他线程调用notifyall方法唤醒等待池中的所有线程,原创 2013-07-18 21:48:11 · 763 阅读 · 0 评论 -
锁标记
每个对象除了属性和方法,都有一个monitor(互斥锁标记),用来将这个对象交给一个线程,只有拿到monitor的线程才能够访问这个对象。Synchronized:这个修饰词可以用来修饰方法和代码块 Object obj;Obj.setValue(123);Synchronized用来修饰方法,表示当某个线程调用这个方法之后,其他的事件不能再调用这个方法。只有拿到obj标记的线原创 2013-07-18 22:22:34 · 1846 阅读 · 0 评论 -
自定义异常类
一、第一种定义方式,继承Exception类public class MyFirstException extends Exception { public MyFirstException() { super(); } public MyFirstException(String msg) { super(msg); } public MyFirstException(Str转载 2012-12-17 15:34:26 · 452 阅读 · 0 评论 -
bufferedReader
public class BufferedReaderextends Reader从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。 可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。 通常,Reader 所作的每个读取请求都会导致对底层字符或字节流进行相应的读取请求。因此,建议用 BufferedReader 包装所有其 read() 操作原创 2013-01-19 22:09:06 · 1021 阅读 · 0 评论 -
Java中hashmap和hashtable的区别
1、 继承和实现区别 Hashtable是基于陈旧的Dictionary类,完成了Map接口;HashMap是Java 1.2引进的Map接口的一个实现(HashMap继承于AbstractMap,AbstractMap完成了Map接口)。 2、 线程安全不同 HashTable的方法是同步的,HashMap是未同步,所以在多线程场合要手动同步HashMap。 3、 对nu转载 2013-01-22 00:42:36 · 4343 阅读 · 0 评论 -
HashMap深入分析
java.util.HashMap是很常见的类,前段时间公司系统由于对HashMap使用不当,导致cpu百分之百,在并发环境下使用HashMap而没有做同步,可能会引起死循环,关于这一点,sun的官方网站上已有阐述,这并非是bug。HashMap的数据结构HashMap主要是用数组来存储数据的,我们都知道它会对key进行哈希运算,哈系运算会有重复的哈希值,对于哈希值的冲突,Hash转载 2013-01-22 00:41:35 · 709 阅读 · 0 评论 -
java中String的“==”和equals判断相等性
1. 首先String不属于8种基本数据类型,String是一个对象。 因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象,有其它对象没有的一些特性。 2. new String()和new String(“”)都是申明一个新的空字符串,是空串不是null;3. String str=”kvill”与String str=new String转载 2013-01-22 00:44:17 · 537 阅读 · 0 评论 -
struts.custom.i18n.resources
每种框价都会有国际化的支持,struts2的国际化大致上分为页面的国际化,Action的国际化以及xml的国际化首先在struts.properties文件中加入以下内容:struts.custom.i18n.resources=messageResource或在struts.xml中加入资源文件的命名格式: 名称_语言代码_国家代码. Properties如果创建转载 2013-01-22 00:46:14 · 691 阅读 · 0 评论 -
为什么 jdk 中把 String 类设计成 final
最佳答案:主要是为了 “ 效率 ” 和 “ 安全性 ” 的缘故。 若 String 允许被继承, 由于它的高度被使用率, 可能会降低程序的性能,所以 String 被定义成 final。其它答案一:String 和其他基本类型不同 , 他是个对象类型. 既然是对象类型 , 如果是在静态方法下是必须调用静态方法或值的 , 如果是非静态的方法 , 就必须要实例化.mai转载 2013-04-16 19:35:38 · 552 阅读 · 0 评论 -
26个提升java性能需要注意的地方
最近的机器内存又爆满了,除了新增机器内存外,还应该好好review一下我们的代码,有很多代码编写过于随意化,这些不好的习惯或对程序语言的不了解是应该好好打压打压了。下面是参考网络资源总结的一些在Java编程中尽可能要做到的一些地方。1. 尽量在合适的场合使用单例使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于转载 2013-04-16 19:33:41 · 472 阅读 · 0 评论 -
JAVA容器
执行JAVA的应用程序 容器(Container) 容器可以管理对象的生命周期、对象与对象之间的依赖关系,您可以使用一个配置文件(通常是XML),在上面定义好对象的名称、如何产生(Prototype 方式或Singleton 方式)、哪个对象产生之后必须设定成为某个对象的属性等,在启动容器之后,所有的对象都可以直接取用,不用编写任何一行程序代码来产生对象,或是建立对象与对象之间的依赖关转载 2013-07-13 21:56:57 · 574 阅读 · 0 评论 -
领域模型
领域模型是对领域内的概念类或现实世界中对象的可视化表示。又称概念模型、领域对象模型、分析对象模型。它专注于分析问题领域本身,发掘重要的业务领域概念,并建立业务领域概念之间的关系。 领域模型的概念 什么是领域模型?这个很关键,弄清楚什么是领域模型,才能进行领域模型设计,否则领域模型设计的结果就没有相互讨论的基础。 首先,我想谈谈我的理解。 业务系统一般包括三部转载 2013-07-13 21:58:00 · 912 阅读 · 0 评论 -
Java内存泄漏
1 引言 Java的一个重要优点就是通过垃圾收集器GC (Garbage Collection)自动管理内存的回收,程序员不需要通过调用函数来释放内存。因此,很多程序员认为Java 不存在内存泄漏问题,或者认为即使有内存泄漏也不是程序的责任,而是GC 或JVM的问题。其实,这种想法是不正确的,因为Java 也存在内存泄漏,但它的表现与C++不同。如果正在开发的Java 代码要全天24 小转载 2013-07-13 22:11:26 · 487 阅读 · 0 评论 -
全面分析Java的垃圾回收机制
引言 Java的堆是一个运行时数据区,类的实例(对象)从中分配空间。Java虚拟机(JVM)的堆中储存着正在运行的应用程序所建立的所有对象,这些对象通过new、newarray、anewarray和multianewarray等指令建立,但是它们不需要程序代码来显式地释放。一般来说,堆的是由垃圾回收 来负责的,尽管JVM规范并不要求特殊的垃圾回收技术,甚至根本就不需要垃圾回收,但是由于内转载 2013-07-13 22:10:47 · 459 阅读 · 0 评论 -
Java内存优化和性能优化的几点建议
1.没有必要时请不用使用静态变量 使用Java的开发者都知道,当某个对象被定义为stataic变量所引用,这个对象所占有的内存将不会被回收。有时,开发者会将经常调用的对象或者变量定义为static,以便提高程序的运行性能。因此,不是常用到的对象或者变量,不要定义为static类型的变量,尤其是静态类对象的定义,一定要仔细考虑是否有必要。例如[java] view转载 2013-07-02 22:32:44 · 554 阅读 · 0 评论 -
生产者消费者问题(java模拟)
import java.util.Stack;import java.util.concurrent.atomic.AtomicInteger; /** * 1个生产者 3个消费者 生产、消费10次 * * @作者 pt * */ public class ProducerConsumer { StackInteger> items =翻译 2013-07-18 21:25:25 · 974 阅读 · 0 评论 -
this.成员变量:当前类的变量,this.方法:当前运行类的方法!
public class Test { void test() { this.test1(); } void test1() { System.out.println("test"); }}public class Test1 extends Test{ void test1() { System.out.printl原创 2013-11-02 22:10:24 · 1632 阅读 · 0 评论