javaSE
翟长青
这个作者很懒,什么都没留下…
展开
-
证明HashMap是线程不安全的
在平时开发中,我们经常采用HashMap来作为本地缓存的一种实现方式,将一些如系统变量等数据量比较少的参数保存在HashMap中,并将其作为单例类的一个属性。在系统运行中,使用到这些缓存数据,都可以直接从该单例中获取该属性集合。但是,最近发现,HashMap并不是线程安全的,如果你的单例类没有做代码同步或对象锁的控制,就可能出现异常。首先看下在多线程的访问下,非现场安全的HashMap的表转载 2016-03-19 11:34:43 · 4740 阅读 · 1 评论 -
java 传值还是传引用的问题
Java中的参数传递机制一直以来大家都争论不休,究竟是“传值”还是“传址(传引用)”,争论的双方各执一词,互不相让。不但“菜鸟”们一头雾水,一些“老鸟”也只知道结果却说不出所以然来。我相信看过下面的内容后,你就会明白一些。 先看基本类型作为参数传递的例子: public class Test1 { public static void main(String[转载 2015-01-28 00:25:16 · 371 阅读 · 0 评论 -
java中Map迭代的三种方式
[java] view plaincopy//java中Map迭代的三种方式 import java.util.HashMap; import java.util.Map; public class Mapdemo{ public static void main(String[] args){ Map转载 2014-07-15 12:46:51 · 2549 阅读 · 0 评论 -
Java 多线程(七) 线程间的通信——wait及notify方法
线程间的相互作用 线程间的相互作用:线程之间需要一些协调通信,来共同完成一件任务。 Object类中相关的方法有两个notify方法和三个wait方法: http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html 因为wait和notify方法定义在Object类中,因此会被所有的类所继承。转载 2014-07-15 11:51:48 · 466 阅读 · 0 评论 -
Java多线程中sleep()和wait()有什么区别
sleep 是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep 不会释放对象锁。wait 是Object 类的方法,对此对象调用wait 方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify 方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。原创 2014-07-15 12:51:37 · 452 阅读 · 0 评论 -
java HashMap用自定义类作为key
用自定义类作为key,必须重写equals()和hashCode()方法。自定义类中的equals() 和 hashCode()都继承自Object类。Object类的hashCode()方法返回这个对象存储的内存地址的编号。而equals()比较的是内存地址是否相等。[java] view plaincopypu原创 2014-07-15 15:28:05 · 893 阅读 · 0 评论 -
Java语言中的访问修饰符
1、访问控制修饰符(public、protected、默认和private)public的访问级别最高,其次是protected、默认和private。成员变量和成员方法可处于4个访问级别中的一个:公开、受保护、默认或私有。顶层类可以处于公开或者是默认级别,顶层类不能被protected和private修饰。局部变量不能被访问控制修饰符修饰。2、abstract修饰符抽象类转载 2014-07-15 12:52:00 · 570 阅读 · 0 评论 -
Java中throw和throws的区别
1、throws出现在方法函数头;而throw出现在函数体。2、throws 是一个声明(它声明这里可能出现异常,但未必一定出现),而 throw 是一个动作(它抛出也可以说它产生一个异常出现,只要执行到了这个关键字,异常必定出现)。throw是语句抛出一个异常。语法:throw (异常对象); throw e;转载 2014-07-15 12:46:54 · 464 阅读 · 0 评论 -
java中trim()的作用
去掉字符串开头和结尾的空格,防止不必要的空格导致的错误。public static void main(String arg[]){ String a=" abc"; String b="abc"; System.out.println(b.equals(a)); a=a.trim();//去掉字符串中的空格 System.out.转载 2014-07-15 11:55:15 · 614 阅读 · 0 评论 -
JVM内存模型
在工作中总会时不时与JVM打交道,尤其是在做性能调优或是看见OOM时,就需要对jvm启动参数做些调整,而我总是头疼于那些参数的含义,特记之。 引用博文:The Java Memory Architecture http://blog.codecentric.de/en/2010/01/the-java-memory-architecture-1-act/JVM内存管理总结 http转载 2014-07-20 23:32:03 · 352 阅读 · 0 评论 -
面试- 字符串反转 单词不反转
面试题目: I lover your name 变成: name your lover I 我的做法:(我是考虑到传递的分割串可能为多个字符) Java代码 package com.data; /** * 字符串反转 源字符串:I lover your name 反转后:name your lover I * * 思转载 2014-07-15 19:19:13 · 710 阅读 · 2 评论 -
1099端口占用问题解决方案
最近在开发的时候,IDEA工具意外退出了,再次启动之后,启动web工程报1099端口已经被占用了,现在将解决方法总结如下:1.在windows命令行窗口下执行:C:\>netstat -aon|findstr "1099,然后查看输出结果,如下图:" 看到了吗,端口被进程号为1484的进程占用,继续执行下面命令:C:\>tasklist|findstr "1原创 2016-05-25 11:32:12 · 22777 阅读 · 1 评论