随笔分类 -  java

摘要:Java中有两种实现多线程的方式。一是直接继承Thread类,二是实现Runnable接口。那么这两种实现多线程的方式在应用上有什么区别呢?继承Thread:一个线程对象只能启动一个线程,无论你调用多少遍start()方法,结果只有一个线程。实现Runnable:创建了四个线程,每个线程调用的是同一个ThreadTest对象中的run()方法,访问的是同一个对象中的变量(tickets)的实例。实现Runnable接口相对于继承Thread类来说,有如下显著的好处:(1)适合多个相同程序代码的线程去处理同一资源的情况,把虚拟CPU(线程)同程序的代码,数据有效的分离,较好地体现了面向对象的设计 阅读全文
posted @ 2013-09-13 15:15 微风夜明 阅读(704) 评论(0) 推荐(0)
摘要:import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.SQLException;public class TestJDBC { /** * 当银行转账时,需要在汇款人账户上扣除汇款金额,同时在收款人账户上存入汇款金额, * 如果中间异常扣款但未实现转账,就需要事物处理,在出现异常情况下回滚到初始状态 */ public static void main(String[] args) { Connection conn = nul... 阅读全文
posted @ 2013-09-10 22:37 微风夜明 阅读(1531) 评论(0) 推荐(0)
摘要:package com.itheima;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class JDBCtest { public static void main(String[] args) { Connection conn = null; Statement stmt = null; Result... 阅读全文
posted @ 2013-09-10 15:59 微风夜明 阅读(362) 评论(0) 推荐(0)
摘要:package com.io;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.util.Properties;public class PropertyDemo { /** * 通过配置文件记录访问次数,例子:程序的试用次数。 */ public static void main(String[] args) { File... 阅读全文
posted @ 2013-09-08 22:35 微风夜明 阅读(167) 评论(0) 推荐(0)
摘要:package com.io;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;public class FileOutputStreamDemo { /** * InputStream 往里读 * OutputStream 往外写 * 复制图片必须用到字节流 */ public static void main(String[] args) { FileInputStream fi... 阅读全文
posted @ 2013-09-08 22:08 微风夜明 阅读(235) 评论(0) 推荐(0)
摘要:public class FileCopy { /** * 1、在D盘创建一个文件,用于存储C盘文件中的数据。 * 2、定义读取流和C盘文件关联 * 3、通过不断的读写完成数据存储。 * 4,关闭资源 */ public static void main(String[] args) { FileWriter fw = null; FileReader fr = null; try { fw = new FileWriter("D:/java.txt",true); fw.write("abcde"); fw.flush(); fr = new File 阅读全文
posted @ 2013-09-06 00:02 微风夜明 阅读(226) 评论(0) 推荐(0)
摘要://最常规的一种遍历方法,最常规就是最常用的,虽然不复杂,但很重要,这是我们最熟悉的,就不多说了!! public static void work(Map map) { Collection c = map.values(); Iterator it = c.iterator(); for (; it.hasNext();) { System.out.println(it.next()); } } //利用keyset进行遍历,它的优点在于可以根据你所想要的key值得到你想要的 values,... 阅读全文
posted @ 2013-08-29 16:07 微风夜明 阅读(130) 评论(0) 推荐(0)
摘要:package com.lm.multest;import java.util.HashMap;import java.util.Map;class Employee{ private String name; private double salary; public Employee(String n){ this.name = n; this.salary = 0; } public String toString(){ return "[name="+this.name+",salary="+this.salary+"]"; 阅读全文
posted @ 2013-08-28 16:16 微风夜明 阅读(140) 评论(0) 推荐(0)
摘要:链表(linked list):是一个有序集合(ordered collection)。 List staff = new LinkedList(); staff.add("Bob"); staff.add("Amy"); staff.add("Carl"); Iterator itr = staff.iterator(); itr.next(); //先移动再删除 B|AC 删除光标之前的元素B itr.remove(); Iterator itra = staff.iterator(); while(itra.hasNext()) 阅读全文
posted @ 2013-08-28 14:37 微风夜明 阅读(268) 评论(0) 推荐(0)
摘要:package com.lm.multest;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;class Resource { private int num; private String name; private boolean flag = false; Lock lock = new ReentrantLock(); Condition notFull = lock.new 阅读全文
posted @ 2013-08-27 14:43 微风夜明 阅读(193) 评论(0) 推荐(0)
摘要:package com.lm.multest;/* * 通过分析,发现,打印出0,-1,-2等错票。 * 多线程的运行出现了安全问题。 * * 分析: * 问题的原因: * 当多条语句在操作同一个线程共享数据时,一个线程对多条语句只执行了一部分,还没有执行完 * 另一个线程参与进来执行。导致共享数据错误。 * * 解决办法: * 对多条操作共享数据的语句,只能让一个线程执行完,在执行过程中,其他线程不可以参与执行。 * * Java对于多线程的安全问题提供了专业的解决的方式。 * * 就是同步代码块。 * * synchronized(... 阅读全文
posted @ 2013-08-26 15:25 微风夜明 阅读(258) 评论(0) 推荐(0)
摘要:package com.own.Single;/** * 单例模式:解决一个类在内存中只存在一个对象。 * * 建议使用饿汉式 * * 要保证对象唯一。 * 1、为了避免其它程序过多建立该类对象。先禁止其它程序建立该类对象。 * 2、还为了让其它程序访问到该类对象,只好在本类中,自定义一个对象。 * 3、为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式。 * * 这三步怎么用代买体现呢? * 1、将构造函数私有化。 * 2、在类中创建一个本类对象。 * 3、提供一个方法获取到该对象。 * *//*饿汉式--类一创建就创建对象(安全)*/class Single { priva... 阅读全文
posted @ 2013-08-17 23:08 微风夜明 阅读(139) 评论(0) 推荐(0)
摘要:“如果类遵从某个特定接口,那么就履行这项服务”public interface Comparable { int compareTo(T other); //泛型 参数类型必须相同 } 阅读全文
posted @ 2013-08-05 10:35 微风夜明 阅读(131) 评论(0) 推荐(0)
摘要:package objectOriented; public class StaticA { * @param args * static静态:(共享数据) * 是一个修饰符,用于修饰成员(成员变量、成员函数) * 当成员被静态修士后,就多了一个调用方式,除了可以被对象调用外, * 还可以直接被类名调用,类名 .静态成员。(如:注释1) * * 特点: * 1、随着类的加载而加载 * 也就是说:静态会随着类的消失而消失,说明它的生命周期最长。 * 2、优先于对象存在 * 明确一点:静态时先存在,对象是后存在的。 * 3、被所有对... 阅读全文
posted @ 2013-08-02 10:46 微风夜明 阅读(118) 评论(0) 推荐(0)
摘要:package com.shuzu; public class shuzuJinZhiZhuanHuan { * @param a 所要转换的十进制数,b 不同进制所要与(&)的数不同,wei 向右移动几位 * 查表法 * 十进制转二进制 * 十进制转十六进制 * 定义数组字符表 * 定义数组容器arr,长度为32位(二进制) or 8位(十六进制) * 定义指针pos * 循环传入参数(int a),判断a的值如果不等于0继续循环 * * 60---0000 0000 0000 0000 0000 0000 0011 1100 * &1... 阅读全文
posted @ 2013-08-02 10:46 微风夜明 阅读(429) 评论(0) 推荐(0)
摘要:package objectOriented; public class StaticMain { * @param args * 主函数:是一个特殊的函数,作为程序的入口,可以被jvm调用。 * * 主函数的定义: * public:代表着该函数访问权限是最大的 * static:代表主函数随着类的加载就已经存在了 * void:主函数没有具体的返回值 * main:不是关键字,但是是一个特殊的单词,可以被jvm识别 * 函数的参数:(String[] args),参数类型是一个数组,该数组中的元素是字符串。字符串类型的数组 * * 主... 阅读全文
posted @ 2013-08-02 10:46 微风夜明 阅读(757) 评论(0) 推荐(0)
摘要:在Java编程语言中,单例模式(饿汉模式)应用的例子如下述代码所示: public class Singleton { private final static Singleton INSTANCE = new Singleton();//Privateconstructor suppresses private Singleton() {} // default public constructorpublic static Singleton getInstance() { return INSTANCE; }}在Java编程语言中,单例模式(懒汉模式)... 阅读全文
posted @ 2013-08-02 10:46 微风夜明 阅读(108) 评论(0) 推荐(0)
摘要:package objectOriented; * @param args * 静态代码块 * 格式: * static * { * 静态代码块中的执行语句。 * } * 特点:随着类的加载而执行,只执行一次。 * 用于给类进行初始化的。 * * 下例执行结果: * b c a f f overclass StaticCode{ StaticCode(){ System.out.println("f"); } static{ System.out.println("a"); }}public clas... 阅读全文
posted @ 2013-08-02 10:46 微风夜明 阅读(108) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2013-08-02 10:46 微风夜明 阅读(164) 评论(0) 推荐(0)
摘要:*说明 @author 张三 @version v1.1 文档注释内容 说明 @param arr 接收一个int类型的数组 @return 会返回一个该数组的计算结果 cmd下敲入: javadoc -d myhelp -author -version ArrayTool.java 必须为public类,必须把类暴露出去 一个类中默认会有一个空参数的构造函数, 这个默认的构造函数的权限和所属类一致。 如果类被public修饰,那么默认的构造函数也带public修饰符。 默认构造函数的权限是随着类的变化而变化。 阅读全文
posted @ 2013-08-02 10:46 微风夜明 阅读(120) 评论(0) 推荐(0)