- 浏览: 209098 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
brenda:
...
技术选型(转) -
JavaScriptOMG:
写的真好,不知道如果是java.sql.date的话,怎么写呢 ...
Java得到下一天明天,明天时间 -
少女杀手:
和他的一摸一样,一个字都不差
http://anysky131 ...
弹出窗口代码大全 -
shipping:
字体好小啊,都没兴趣看下去了
测试网站性能的30款免费在线工具 -
ddd:
其实一切人活着的意义就在于他死前的心情是什么。
活着是多么美好
19.拷贝一个目录(文件)到指定路径
publicvoid copy(File source,File target)
{
File tarpath = new File(target,source.getName());
if(source.isDirectory())
{
tarpath.mkdir();
File[] dir = source.listFiles();
for (int i = 0; i < dir.length; i++) {
copy(dir[i],tarpath);
}
}else
{
try {
InputStream is = new FileInputStream(source);
OutputStream os = new FileOutputStream(tarpath);
byte[] buf = newbyte[1024];
int len = 0;
while((len = is.read(buf))!=-1)
{
os.write(buf,0,len);
}
is.close();
os.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
20.用JAVA中的多线程示例银行取款问题
packagecom.softeem.demo;
class Account {
privatefloatbalance = 1000;
publicfloat getBalance() {
returnbalance;
}
publicvoid setBalance(float balance) {
this.balance = balance;
}
publicsynchronizedvoid withdrawals(float money)
{
if(balance>=money)
{
System.out.println("被取走"+money+"元!");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
balance-=money;
}
else
{
System.out.println("对不起,余额不足!");
}
}
}
class TestAccount1 extends Thread {
private Account account;
public TestAccount1(Account account) {
this.account = account;
}
@Override
publicvoid run() {
account.withdrawals(800);
System.out.println("余额为:"+account.getBalance()+"元!");
}
}
class TestAccount2 extends Thread {
private Account account;
public TestAccount2(Account account) {
this.account = account;
}
@Override
publicvoid run() {
account.withdrawals(700);
System.out.println("余额为:"+account.getBalance()+"元!");
}
}
publicclass Test
{
publicstaticvoid main(String[] args) {
Account account = new Account();
TestAccount1 testAccount1 = new TestAccount1(account);
testAccount1.start();
TestAccount2 testAccount2 = new TestAccount2(account);
testAccount2.start();
}
}
21.用JAVA中的多线程示例火车站售票问题
package com.softeem.demo;
class SaleTicket implements Runnable {
inttickets = 100;
publicvoid run() {
while (tickets > 0) {
sale();
//或者下面这样实现
// synchronized (this) {
// if (tickets > 0) {
// System.out.println(Thread.currentThread().getName() + "卖第"
// + (100 - tickets + 1) + "张票");
// tickets--;
// }
// }
}
}
publicsynchronizedvoid sale() {
if (tickets > 0) {
System.out.println(Thread.currentThread().getName() + "卖第"
+ (100 - tickets + 1) + "张票");
tickets--;
}
}
}
publicclass TestSaleTicket {
publicstaticvoid main(String[] args) {
SaleTicket st = new SaleTicket();
new Thread(st, "一号窗口").start();
new Thread(st, "二号窗口").start();
new Thread(st, "三号窗口").start();
new Thread(st, "四号窗口").start();
}
}
22.用JAVA中的多线程示例生产者和消费者问题
package com.softeem.demo;
class Producer implements Runnable
{
private SyncStack stack;
public Producer(SyncStack stack) {
this.stack = stack;
}
publicvoid run() {
for (int i = 0; i < stack.getProducts().length; i++) {
String product = "产品"+i;
stack.push(product);
System.out.println("生产了: "+product);
try
{
Thread.sleep(200);
}
catch(InterruptedException e)
{
e.printStackTrace();
}
}
}
}
class Consumer implements Runnable
{
private SyncStack stack;
public Consumer(SyncStack stack) {
this.stack = stack;
}
publicvoid run() {
for(int i=0;i <stack.getProducts().length;i++)
{
String product =stack.pop();
System.out.println("消费了: "+product);
try
{
Thread.sleep(1000);
}
catch(InterruptedException e)
{
e.printStackTrace();
}
}
}
}
class SyncStack
{
private String[] products = new String[10];
privateintindex;
publicsynchronizedvoid push(String product)
{
if(index==product.length())
{
try {
wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
notify();
products[index]=product;
index++;
}
publicsynchronized String pop()
{
if(index==0)
{
try {
wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
notify();
index--;
String product = products[index];
return product;
}
public String[] getProducts() {
returnproducts;
}
}
publicclass TestProducerConsumer {
publicstaticvoid main(String[] args) {
SyncStack stack=new SyncStack();
Producer p=new Producer(stack);
Consumer c=new Consumer(stack);
new Thread(p).start();
new Thread(c).start();
}
}
发表评论
-
技术选型(转)
2011-05-17 15:05 11732.1. 基础架构 ... -
分布式Java 应用(转)
2011-05-17 14:43 1380网络通信:协议TCP/IP,UDP/Ip,Multicas ... -
跨域访问session(转)
2011-04-22 16:14 2678大一些的网站,通常都 ... -
(转)分享一下,我常去的中文技术网站
2011-04-18 13:31 878先说一下大多数人都知 ... -
(转) request.getPathInfo() 方法的作用
2011-04-14 11:58 948request.getPathInfo(); 这个方法返回请 ... -
找到一篇性能测试的好文,简单实用,收藏之。
2011-04-10 21:59 866Java程序性能测试 1 概述 在 ... -
需要牢记的java编程规则(收藏)
2011-04-10 20:52 759(1) 类名首字母应该 ... -
一个计算机专业学生几年的编程经验汇总之二(收藏)
2011-04-10 19:48 924############################### ... -
一个计算机专业学生几年的编程经验汇总之一(收藏)
2011-04-10 18:05 920来学习Java也有两个年头了,永远不敢说多么精通,但也想谈谈自 ... -
(转)各种架构图汇总
2011-04-06 22:27 1452转载请保留出处,刘晓涛汇总!!! http://bl ... -
(转)java并发编程实践笔记
2011-04-05 22:23 8251, 保证线程安全的三种方法 : a, 不要跨线程访问共享变量 ... -
(转)构建可伸缩,高性能的互联网应用
2011-04-05 22:22 797间过得很快,来新公司已经两个月了,在这两个月的时间里,自己也感 ... -
(转)百万级访问量网站的技术准备工作
2011-04-05 22:20 928当今从纯网站技术上来说,因为开源模式的发展,现在建一个小网站已 ... -
测试数据库连接状态
2011-03-25 08:45 1432while (true) { long star ... -
(转)什么是Java里的OO思想?
2011-03-24 14:12 927OO就是面向对象 面向对象(Object Oriented,O ... -
(转)JAVA 检测网络是否为连通状态 ping
2011-03-23 14:34 2559要用java检测网络资源是否可用,我们可以采用以下两种方法: ... -
中文乱码问题的解决方法
2011-01-21 17:33 1204tomcat下中文的彻底解决[转] http://blo ... -
nginx 映射80端口
2009-08-04 09:13 3925配置一个resin, 为不用输入端 ... -
调整 Java 虚拟机
2009-07-09 23:43 1108尽管 JVM 调整操作随 JVM 提供程序的不同而有所变化,但 ... -
测试网站性能的30款免费在线工具
2009-06-28 02:12 2055你是否肯定你的网站完全兼容各大浏览器?是否知道多少秒可以打开你 ...
相关推荐
根据提供的文件信息,我们可以归纳和展开以下相关的Java知识点: ### 1. Java语言的优势 Java 作为一种广泛应用的编程语言,具备以下显著优势: - **免费且开源**:Java 是一个开放源代码的软件,任何人都可以...
java经典题目算法
### Java竞赛经典题目集锦知识点解析 #### 一、Java基础知识——链表操作 ##### 题目背景与目标 本题目旨在通过实际操作来帮助读者深入理解Java中链表的基本概念及其应用。通过创建一个包含三个节点的简单链表,...
为此,【Java经典题目下载】提供了一系列精选的实训题目,不仅帮助初学者巩固已学知识,还能激发其对新知识的学习热情。 实训课程的安排十分紧凑,从周一至周五的上午8:30到11:30,下午1:00到4:00,直至7月17日的每...
import java.util.Scanner; public class WNL{ public static void main(String[] args) { System.out.println("***********欢迎使用万年历**********"); Scanner input = new Scanner(System.in); System....
"java经典题目加其他"这个压缩包包含了一些对Java开发者极其有价值的学习资料。以下是对这些文档内容的详细解读: 1. **java经典题目.doc**: 这份文档很可能是集合了Java编程中的经典问题和面试题,旨在帮助...
以下是一些关于Java的详细知识点,主要基于给定的面试题目。 1. **Java的优势**:Java的优势包括免费开源、跨平台(Java虚拟机JVM使得Java代码能在不同操作系统上运行)、简单易学、功能全面、面向对象、健壮性强、...
这些Java经典题目涵盖了基本的输入输出、条件判断、循环控制等核心概念,对于初学者来说是很好的练习材料,能够帮助他们理解和掌握Java编程的基本技巧。通过解决这些题目,开发者可以提升逻辑思维能力和代码组织能力...
### Java经典题目解析 #### 知识点一:最大公约数算法 在Java学习过程中,掌握基础算法是非常重要的。其中一个常见的题目就是计算两个整数的最大公约数(Greatest Common Divisor, GCD)。本题通过一个名为`...
这份“Java经典笔试题目”文档无疑为准备Java面试的开发者提供了宝贵的参考资料。 1. **基础语法**:Java的基础语法包括变量声明、数据类型、运算符、流程控制(如if、for、while、switch)、方法定义与调用等。在...
### Java面试经典题目详解 #### 一、Java基础问答深入解析 1. **哪些类可以被继承?** 在给出的示例中,`java.lang.Thread`和`java.lang.ClassLoader`是可以被继承的,而`java.lang.Double`, `java.lang.Math`, `...
在Java面试中,面试官通常会考察求职者的基础理论知识、编程实践能力以及对Java特性的理解。以下是对给定文件中的一些关键知识点的详细解释: 1. **面向对象的特征**: - **抽象**:抽象是将复杂问题简化,关注...
java经典题目算法大全[整理版].doc
"Java经典例题代码"这个主题旨在通过实例帮助开发者深入理解Java的核心概念和最佳实践。以下是一些关键知识点的详细说明: 1. **基础语法**:Java的基础包括变量声明、数据类型(如整型、浮点型、字符型、布尔型)...
Java是一种广泛使用的面向对象的编程语言...这些经典Java面试题涵盖了Java的基础概念、语法和编程规范,是评估应聘者Java基础知识的重要手段。掌握这些知识不仅能帮助应对面试,也是成为一名合格的Java开发者所必需的。
"Java 小项目 经典题目"集合提供了一系列针对性的练习,旨在帮助学习者巩固基础,提高实际编程能力。下面,我们将深入探讨这些经典项目的知识点以及它们在Java学习路径中的重要性。 1. **控制台应用开发**:许多...
在Java编程语言中,经典题目往往涵盖了许多核心概念和关键知识点。以下是一些Java语言的重点知识,包括它的优势、面向对象编程的术语、常用的包、标识符的规则、关键字的特点、数据类型的分类、运算符的种类、super...
Java面试经典题目是每个Java开发者在求职过程中都可能遇到的挑战。这些题目涵盖了语言基础、数据结构、算法、多线程、JVM、设计模式、框架、数据库等多个方面,旨在全面评估候选人的技术实力和问题解决能力。以下是...