- 浏览: 125553 次
- 性别:
- 来自: 地球
-
最新评论
-
754731046:
很适合对初学者适用,谢谢
Oracle存储过程详解 -
天明破晓:
我测试了,不好用
Java中的正则表达式验证各种电话号码 -
OracleX:
otom31 写道从来不用标签库,几乎不用struts,除了最 ...
标签库的优点、缺点大辩论 -
otom31:
从来不用标签库,几乎不用struts,除了最早公司要使用以外; ...
标签库的优点、缺点大辩论
文章列表
单例模式应用于一个类只有一个实例的情况,并且为其实例提供一个全局的访问点。
特点:
1.一个类只有一个实例
2.自己创建这个实例
3.整个系统只能用这个实例
应用场景
外部资源:每台计算机有若干个打印机,但只能有一个PrinterSpooler,以避免两个打印作业同时输出到打印机。
内部资源:大多数软件都有一个(或多个)属性文件存放系统配置,这样的系统应该有一个对象管理这些属性文件。
实现方式
1.饿汉式:单例实例在类装载时就构建,急切初始化。(预先加载法)
/**
* 饿汉式(推荐)
*
*/
public class Singleton1 {
p ...
基本的ThreadLocal使用
public class ThreadLocalTest {
static ThreadLocal tl=new ThreadLocal();
public static void main(String[] args) {
for(int i=0;i<2;i++){
new Thread(new Runnable(){
int data =new Random().nextInt();
public void run() {
System.out.println(Thread.currentThre ...
你在成长为一个优秀的程序员吗
- 博客分类:
- IT生活
在软件开发过程中,你经历的每件事情都会潜移默化地影响着你。随着时间的流逝,年纪的增长,对于程序开发技术(相同/或者相关能力)以及自身的理解也会不断沉淀,这些最终也会帮助你达成目标——成为一名优秀的程序员。这里谈到的经历不仅限于程序员生涯里的里程碑,比如换工作、成为领导/经理或者自己创业。你所经历的每一份工作、每个项目(不论大小)、与团队成员的每次交流、甚至你实现的每一个程序模块,都会让你变得比以前更优秀、更有活力、更有见地。
在日常的工作当中不放过任何一点可以学习的新知识,会让你成为更加出色的程序员。我说的是重要的经验——你不必去关心琐碎的事情(比如每一次敲击键盘是否完美),重要的是把握好 ...
惹恼程序员的10件事
- 博客分类:
- IT生活
程序员是一个比较特殊的群体,他们因为长期和电脑打交道所养成的性格和脾气也是比较相近的。当然,既然是人,当然是会有性格的,也是会有脾气的。下面,让我来看看10种能把程序惹毛了的事情。一方面我们可以看看程序员的共性,另一方面我们也可以看看程序员的缺点。无论怎么样,我都希望他们对你的日常工作都是一种帮助。
第十位 程序注释
程序注释本来是一些比较好的习惯,当程序员老手带新手的时候,总是会告诉新手,一定要写程序注释。于是,新手们当然会听从老手的吩咐。只不过,他们可能对程序注释有些误解,于是,我们经常在程序中看到一些如下的注释:
代码:
r = n/2; //r是n的一半 ...
正在为理想而奋斗的程序员进来看看
- 博客分类:
- IT生活
1、猫在练习长跑,乌龟讽刺道:再练,也不能跑出个长跑冠军!猫答:我成不了豹子,却能做最棒的猫!是的,努力做好自己,做到最棒,就是成功!2、一万元以内的奢侈品,可以买,但不可以炫耀。3、别人可以拷贝我的模式 ...
子线程先循环10次,然后主线程循环100次,再子线程循环10次,主线程循环100次,就这样循环往复50次。
public class Communtion01 {
public static void main(String args[]) {
final Bussiness buss = new Bussiness();
new Thread(new Runnable() {
public void run() {
for (int j = 1; j <= 50; j++) {
buss.sub(j);
...
第一个示例更多的是运用了内部类的特性:
内部类重要特点:可以访问外部的成员变量,所以内部类不能在静态方法中实例化。
因为静态方法运行时不需要创建实例对象,而内部类想要访问成员变量,意味着外部类肯定要创建实例对象,二者相互矛盾。
所以下面就会报错
public class Synchronized01 {
public static void main(String args[]) {
)
// final Outputer outputer=new Outputer(); //这样做就没有成员变量可以访问
// new Thread(new Runnable() ...
在T公司工作快一年了,刚进入公司就参与到项目的开发中,开发小组加上我一共5个人。公司下达的任务是在一个月的时间必须完成这个项目,接下来进行的就是很多软件公司常用方式:加班,没日没夜的加班。所以我刚进入公 ...
入门
public class Time01 {
public static void main(String[] args) {
// Timer timer01=new Timer();
// timer01.schedule(new TimerTask(){
//
// @Override
// public void run() {
//
// System.out.println("bombing");
// }}, 1000);
new Timer().schedule(new TimerTask() {
...
1.进程与线程
每个进程都独享一块内存空间,一个应用程序可以同时启动多个进程。比如IE浏览器,打开一个Ie浏览器就相当于启动了一个进程。
线程指进程中的一个执行流程,一个进程可以包含多个线程。
每个进程都需要操作系统为其分配独立的内存空间,而同一个进程中的多个线程共享这块空间,即共享内存等资源。
每次调用java.exe的时候,操作系统都会启动一个Java虚拟机进程,当启动Java虚拟机进程时候,Java虚拟机都会创建一个主线程,该线程会从程序入口main方法开始执行。
Java虚拟机每启动一个线程,就给会给该线程分配一个线程方法栈,用来存放相关信息(比如局 ...
互联网开发工程师 提升核心竞争力提升的思考
- 博客分类:
- IT生活
文章出自:http://blog.sina.com.cn/s/blog_66c069db0100yevq.html
经常在一些技术论坛里看到,有人抱怨说做开发好多年了,技术没有多大长进,薪水也没有提升;
<wbr> 经常会碰到一些做技术外包的同学,说我天天coding,coding ...
很长时间对join方法感到疑惑,不明白到底是谁要阻塞,谁要继续执行(线程这部分亟需加强)。今天和一网友交流后疑惑得到解决,在此表示感谢Stephen_Liu。
假如在main方法中有个线程A,执行了A.join(),那么线程A继续执行,而main线程这阻塞在A.join()处,直到线程A执行完毕并正常退出,此时main方法中的A.join()才返回,然后继续执行A.join()后面的代码。
public class ThreadJoin extends Thread {
public static int n = 0;
static synchronized void inc ...
实现Serializable借口的对象可以被转换成一系列字节,并可以在以后使用时完全恢复原来的样子。这一过程也可以在网络中进行,这样就可以先在windows机器上创建一个对象,对其序列化,然后通过网络发送给Linux机器,就可以在Linux机器上准确无误地恢复成原来的样子。整个过程不必关心数据在不同机器上如何表示,也不必关心字节的顺序或其他细节。
序列化的思想就是“冻结”对象,操作对象(写到磁盘,通过网络传输等),然后“解冻”对象,重新获得可用的Java对象。功能的实现要靠ObjectInputStream/ObjectOutputStream类,完全保真原数据,并且开发愿 ...
Mysql:
String Driver="com.mysql.jdbc.Driver"; //驱动程序
String URL="jdbc:mysql://localhost:3306/db_name"; //连接的URL,db_name为数据库名
String Username="username"; //用户名
String Password="password"; //密码
...
ClassA.java
public class ClassA implements Serializable {
private static final long serialVersionUID = 6013572251564847381L;
private String name = "My name is a";
private ClassB b = null;
ClassA() {
b = new ClassB();
}
public String show() {
System.out.println(& ...