50道经典的JAVA编程题(目录) 题目来源于:http://blog.sina.com.cn/s/blog_60fafdda0100wb21.html【程序1】 TestRabbit.java题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....【程序2】 FindPrimeNumber.java题目:判断101-200之间有多少个素数,并输出所有素数。...
零.此文动机 用了一段时间的Lua,用惯了Java C++等有Class关键字的语言,一直对Lua的中的面向对象技术感到费解,一个开源的objectlua更是看了n遍也没理解其中的原理,直到看到了Prototype-based programming一.什么是基于原型的编程基于原型的编程是面向对象编程的一种形式,通过复制已经存在的原型对象来实现面向对象,无与基于类的编程较大的区别是没有Class关键字,但是有类的概念。基于原型的编程也可以理解成基于实例的编程...
所用到的并发编程库import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.locks.ReentrantReadWriteLock;package com.league.idgenerate;/*** * ID生成器接口, 用于生成全局唯一的ID流水号* * @author Ivan.Ma*/
public interface IdGenerator {/*** 生成下一个不重复的流水号* @return*/String next();}
package com.league.idgenerate;/*** ID生成器的配置接口* @author Ivan.Ma*/
public interface ...
方法:1. 基本的main方法:publicstaticvoid main(String[] args)2.静态方法内部调用非静态方法:重新声明一个类,通过这个类来调用非静态方法 1publicclass MAINMETHOD {2publicstaticvoid main(String[] args) {3 MAINMETHOD mm = new MAINMETHOD();4 System.out.printf("%d", mm.max(5, 6));5 6 }7 8publicint max(int a,int b){9return a>b?a:b;
10 }
11 }3. 方法重载:在一个类内部出现了多个方法名称相...
控制线程中断的方法一般常规是定义一个布尔值,然后while(布尔值) 去执行,当想停止该线程时候,把布尔值设为false.这里我们来看第二种,Interrupt 该例子模拟一个线程从1打印到10,然后到5的时候中断线程,主要在线程中捕捉InterruptedException 异常 publicclass Test implements Runnable {@Overridepublicvoid run() {// TODO Auto-generated method stubfor(int i=0;i<10;i++){System.out.println("打印"+i);try {TimeUnit...
多线程编程:聊天室升级版?????? 还记得上一章的聊天室吗,不如说是单向发送器,我只能单方面的发送信息给客户端,不能接收消息,不能看到其他室友的发送的信息,我想要的是一个真正的聊天室,在发送信息的同时能看到我和其他室友发送的聊天记录,这里就不得不一边发送一边接收,意味着在用户与GUI交互的同时不能打断它,需要一个单独的执行空间来执行接收功能,就必须引进一个新的线程(Thread)。一、创建线程????? 创建一个线程...
Java Socket编程 转载自:http://haohaoxuexi.iteye.com/blog/1979837 对于Java Socket编程而言,有两个概念,一个是ServerSocket,一个是Socket。服务端和客户端之间通过Socket建立连接,之后它们就可以进行通信了。首先ServerSocket将在服务端监听某个端口,当发现客户端有Socket来试图连接它时,它会accept该Socket的连接请求,同时在服务端建立一个对应的Socket与之进行通信。这样就有两个Socket了,客户端和服务端...
<script type="text/javascript">
function Person(){
this.name=‘li4‘
this.age=20
this.eat=function(){console.log(‘eating ...‘)}
this.sing=function(){console.log(‘sing ...‘)}
}
var p1=new Person()
console.log(‘my name is ‘+p1.name+‘, i am ‘+p1.age)
p1.eat()
p1.sing()
//设计模式:简单的链式编程,
//调用return this
function Man(){
t...
引用:http://www.cnblogs.com/dolphin0520/ 想必很多朋友对ThreadLocal并不陌生,今天我们就来一起探讨下ThreadLocal的使用方法和实现原理。首先,本文先谈一下对ThreadLocal的理解,然后根据ThreadLocal类的源码分析了其实现原理和使用需要注意的地方,最后给出了两个应用场景。 以下是本文目录大纲: 一.对ThreadLocal的理解 二.深入解析ThreadLocal类 三.ThreadLocal的应用场景 若有不正之处请多多谅解,并欢迎...
什么是线程安全? 线程安全是指的是某个函数、函数库在并发环境中被调用时,能够正确地处理多个线程之间的共享变量,使程序功能正确完成。 这里有几个要点:并发、多线程、共享变量 并发 并发与并行的关系 这里我采用形象的术语来描述,尽量让非本专业的人也能理解并发是两个队伍交替使用一个机器,同一时刻只有某个队伍的某一个人可以使用,下一刻有可能是A队伍的人在使用,也有可能是B队伍的人在使用(看运气或者谁优先)。并...
线程不安全的HashMap因为多线程环境下,使用Hashmap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap。效率低下的HashTable容器HashTable容器使用synchronized来保证线程安全,但在线程竞争激烈的情况下HashTable的效率非常低下。因为当一个线程访问HashTable的同步方法时,其他线程访问HashTable的同步方法时,可能会进入阻塞或轮询状态。如线程1使用put进行添加元素,线程2不但不能使用put方法...
一切皆对象用引用操纵对象Java中操纵的标识符实际上是对象的“引用”。例如想要操纵一个字符串,则可以创建一个String引用。String s;此处s只是一个引用。存储位置基本类型/对象的引用:堆栈对象: 堆作用域作用域由{}确定,决定了在其中定义的变量名的可见性以及生命周期。1{
2int x =12;
3 {
4int x = 96; //illegal5 }
6 }非法,不能隐藏。{String s = new String("str");
}引用s在作用域终点消失,而s指向的String对象仍...
第一章 基本网络概念 网络 网络的分层 IP TCP和UDP Internet 客户/服务器模型 Internet标准第二章 流 输出流 输入流 过滤器流 阅读器和书写流第三章 线程 运行线程 从线程返回信息 同步 死锁 线程调度 线程池和Executor原文:http://www.cnblogs.com/kaililikai/p/5860909.html
1 File 类File是一个 文件和目录路径名 的抽象表示,通过File可以查看文件的各种信息,也可以增加删除文件。
File构造器接受一个路径字符串并把它与实际文件目录映射起来,也能接受父子目录,无论是相对路径还是绝对路径
File(File parent, String child)File(String pathname)File(URI uri) File 对文件和目录操作的功能几乎都有如 查看读写权限,查看父子目录,创建 删除 重命名文件等等。2 输入和输出输入流 InputStream / Re...
UDP协议 UDP协议提供的服务不同于TCP协议的端到端服务,它是面向非连接的,属不可靠协议,UDP套接字在使用前不需要进行连接。实际上,UDP协议实现了两个功能: 1)在IP协议的基础上添加了端口; 2)对传输过程中可能产生的数据错误进行了检测,并抛弃已经损坏的数据。UDP的Java支持 Java通过DatagramPacket类和DatagramSocket类来使用UDP套接字,客户端和服务器端都通过DatagramSocket的send()方法和receive()方法来...