Java学习之路
本专栏主要是用来记录学习Java期间的知识点,大家共同学习,促进进步哈。。。小白起步,希望大家多鼓励下哦。。。
luyaran
像永远快乐的阳光,追求那至高无上的完美乐园。
展开
-
java入门--- 线程操作实例之终止线程
Java中原来在Thread中提供了stop()方法来终止线程,但这个方法是不安全的,所以一般不建议使用。我们来看使用interrupt方法中断线。使用interrupt方法来终端线程可分为两种情况:(1)线程处于阻塞状态,如使用了sleep方法。 (2)使用while(!isInterrupted()){……}来判断线程是否被中断。 在第一种情况下使用interrupt方法,sle...原创 2018-06-06 15:25:17 · 166 阅读 · 0 评论 -
java入门--- 线程操作实例之生产者/消费者问题
生产者和消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一个存储空间,如下图所示,生产者向空间里存放数据,而消费者取用数据,如果不加以协调可能会出现以下情况: 存储空间已满,而生产者占用着它,消费者等着生产者让出空间从而去除产品,生产者等着消费者消费产品,从而向空间中添加产品。互相等待,从而发生死锁。 以下实例演示了如何通过线程解决生产者/消费者问题:pu...原创 2018-06-06 15:27:52 · 189 阅读 · 0 评论 -
java入门--- 线程操作实例之获取线程状态
Java中的线程的生命周期大体可分为5种状态:1. 新建状态(New):新创建了一个线程对象。2. 就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。3. 运行状态(Running):就绪状态的线程获取了CPU,执行程序代码。4. 阻塞状态(Blocked):阻塞状态是线程因为某种原因...原创 2018-06-06 15:29:52 · 1452 阅读 · 0 评论 -
java入门--- 线程操作实例之获取所有线程
以下实例演示了如何使用 getName() 方法获取所有正在运行的线程:public class Main extends Thread { public static void main(String[] args) { Main t1 = new Main(); t1.setName("thread1"); t1.start(); Threa...原创 2018-06-06 15:31:07 · 2398 阅读 · 0 评论 -
java入门--- 线程操作实例之查看线程优先级
以下实例演示了如何使用 getThreadId() 方法获取线程id:public class Main extends Object { private static Runnable makeRunnable() { Runnable r = new Runnable() { public void run() { for (int ...原创 2018-06-06 15:33:07 · 359 阅读 · 0 评论 -
java入门--- 线程操作实例之中断线程
以下实例演示了如何使用interrupt()方法来中断线程并使用 isInterrupted() 方法来判断线程是否已中断:public class Main extends Object implements Runnable { public void run() { try { System.out.println("in run() - 将运行 wor...原创 2018-06-06 15:34:20 · 231 阅读 · 0 评论 -
java入门---网络实例操作之解析 URL
以下实例演示了如何使用 net.URL 类的 url.getProtocol() ,url.getFile() 等方法来解析 URL 地址:import java.net.URL; public class Main { public static void main(String[] args) throws Exception { URL url = new URL...原创 2018-06-05 10:47:16 · 333 阅读 · 0 评论 -
java入门---网络实例操作之 ServerSocket 和 Socket 通信实例
以下实例演示了如何实现客户端发送消息到服务器,服务器接收到消息并读取输出,然后写出到客户端客户端接收到输出。首先是建立服务器端:服务器建立通信ServerSocket服务器建立Socket接收客户端连接建立IO输入流读取客户端发送的数据建立IO输出流向客户端发送数据消息 服务器端代码如下:import java.io.BufferedReader;import java.io.Buf...原创 2018-06-05 10:50:43 · 586 阅读 · 0 评论 -
java入门--- 线程操作实例之查看线程是否存活
以下实例演示了如何通过继承 Thread 类并使用 isAlive() 方法来检测一个线程是否存活:public class TwoThreadAlive extends Thread { public void run() { for (int i = 0; i < 10; i++) { printMsg(); } } public...原创 2018-06-05 10:52:19 · 3063 阅读 · 1 评论 -
java入门--- 线程操作实例之获取当前线程名称
以下实例演示了如何通过继承 Thread 类并使用 getName() 方法来获取当前线程名称:public class TwoThreadGetName extends Thread { public void run() { for (int i = 0; i < 10; i++) { printMsg(); } } public ...原创 2018-06-05 10:53:28 · 1728 阅读 · 0 评论 -
java入门--- 线程操作实例之状态监测
以下实例演示了如何通过继承 Thread 类并使用 currentThread.getName() 方法来监测线程的状态:class MyThread extends Thread{ boolean waiting= true; boolean ready= false; MyThread() { } public void run() { String th...原创 2018-06-05 10:54:45 · 241 阅读 · 0 评论 -
java入门--- 线程操作实例之线程优先级设置
以下实例演示了如何通过setPriority() 方法来设置线程的优先级:public class SimplePriorities extends Thread { private int countDown = 5; private volatile double d = 0; public SimplePriorities(int priority) { se...原创 2018-06-05 10:56:10 · 296 阅读 · 0 评论 -
java入门--- 线程操作实例之死锁及解决方法
死锁是这样一种情形:多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞,因此程序不可能正常终止。 Java 死锁产生的四个必要条件如下: 1、互斥使用,即当资源被一个线程使用(占有)时,别的线程不能使用2、不可抢占,资源请求者不能强制从资源占有者手中夺取资源,资源只能由资源占有者主动释放。3、请求和保持,即当资源请求者在请求其他的资源的同时保持对原...原创 2018-06-05 10:59:27 · 267 阅读 · 0 评论 -
java入门--- 线程操作实例之获取线程id
以下实例演示了如何使用 getThreadId() 方法获取线程id:public class Main extends Object implements Runnable { private ThreadID var; public Main(ThreadID v) { this.var = v; } public void run() { try { ...原创 2018-06-05 11:01:02 · 6019 阅读 · 0 评论 -
java入门--- 线程操作实例之线程挂起
以下实例演示了如何将线程挂起:public class SleepingThread extends Thread { private int countDown = 5; private static int threadCount = 0; public SleepingThread() { super("" + ++threadCount); star...原创 2018-06-05 11:02:13 · 347 阅读 · 0 评论 -
java入门---网络实例操作之获取指定主机的IP地址
以下实例演示了如何使用 InetAddress 类的 InetAddress.getByName() 方法来获取指定主机(网址)的IP地址:import java.net.InetAddress;import java.net.UnknownHostException; public class GetIP { public static void main(String[] arg...原创 2018-06-04 10:21:27 · 617 阅读 · 0 评论 -
java入门---网络实例操作之查看端口是否已使用
以下实例演示了如何检测端口是否已经使用:import java.net.*;import java.io.*; public class Main { public static void main(String[] args) { Socket Skt; String host = "localhost"; if (args.length > 0)...原创 2018-06-04 10:22:43 · 541 阅读 · 0 评论 -
java入门---网络实例操作之获取本机ip地址及主机名
以下实例演示了如何使用 InetAddress 类的 getLocalAddress() 方法获取本机ip地址及主机名:import java.net.InetAddress; public class Main { public static void main(String[] args) throws Exception { InetAddress addr = ...原创 2018-06-04 10:23:50 · 361 阅读 · 0 评论 -
java入门---网络实例操作之获取远程文件大小
以下实例演示了如何获取远程文件的大小:import java.net.URL;import java.net.URLConnection; public class Main { public static void main(String[] args) throws Exception { int size; URL url = new URL("http://...原创 2018-06-04 10:25:23 · 942 阅读 · 0 评论 -
java入门---网络实例操作之Socket 实现多线程服务器程序
以下实例演示了如何使用 Socket 类的 accept() 方法和 ServerSocket 类的 MultiThreadServer(socketname) 方法来实现多线程服务器程序:import java.io.IOException;import java.io.PrintStream;import java.net.ServerSocket;import java.net.So...原创 2018-06-04 10:26:45 · 438 阅读 · 1 评论 -
java入门---网络实例操作之查看主机指定文件的最后修改时间
以下实例演示了如何查看主机指定文件的最后修改时间:import java.net.URL;import java.net.URLConnection; public class Main { public static void main(String[] argv) throws Exception { URL u = new URL("http://127.0.0....原创 2018-06-04 10:27:57 · 296 阅读 · 0 评论 -
java入门---网络实例操作之使用 Socket 连接到指定主机
以下实例演示了如何使用 net.Socket 类的 getInetAddress() 方法来连接到指定主机:import java.net.InetAddress;import java.net.Socket; public class WebPing { public static void main(String[] args) { try { ...原创 2018-06-04 10:29:14 · 792 阅读 · 0 评论 -
java入门---网络实例操作之网页抓取
以下实例演示了如何使用 net.URL 类的 URL() 构造函数来抓取网页:import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileWriter;import java.io.InputStreamReader;import java.net.URL; public class Main...原创 2018-06-04 10:30:41 · 226 阅读 · 0 评论 -
java入门---网络实例操作之获取 URL响应头的日期信息
以下实例演示了如何使用 HttpURLConnection 的 httpCon.getDate() 方法来获取 URL响应头的日期信息:import java.net.HttpURLConnection;import java.net.URL;import java.util.Date; public class Main{ public static void main(String...原创 2018-06-04 10:31:48 · 354 阅读 · 0 评论 -
java入门---网络实例操作之获取 URL 响应头信息
以下实例演示了如何获取指定 URL 的响应头信息:import java.io.IOException;import java.net.URL;import java.net.URLConnection;import java.util.Map;import java.util.Set; public class Main { public static void main(Stri...原创 2018-06-04 10:32:57 · 1155 阅读 · 0 评论 -
java入门---集合操作实例之只读集合
以下实例演示了如何使用 Collection 类的 Collections.unmodifiableList() 方法来设置集合为只读:import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.HashMap;import java.util.HashSe...原创 2018-06-01 13:53:12 · 1164 阅读 · 0 评论 -
java入门---集合操作实例之集合输出
以下实例演示了如何使用 Java Util 类的 tMap.keySet(),tMap.values() 和 tMap.firstKey() 方法将集合元素输出:import java.util.*; public class Main{ public static void main(String[] args) { System.out.println("TreeMap ...原创 2018-06-01 13:55:05 · 260 阅读 · 0 评论 -
java入门---集合操作实例之集合转数组
以下实例演示了如何使用 Java Util 类的 list.add() 和 list.toArray() 方法将集合转为数组:import java.util.*; public class Main{ public static void main(String[] args){ List<String> list = new ArrayList<Stri...原创 2018-06-01 13:56:48 · 210 阅读 · 0 评论 -
java入门---集合操作实例之List 循环移动元素
以下实例演示了如何使用 Collections 类的 rotate() 来循环移动元素,方法第二个参数指定了移动的起始位置:import java.util.*; public class Main { public static void main(String[] args) { List list = Arrays.asList("one Two three Four ...原创 2018-06-01 13:58:16 · 1193 阅读 · 0 评论 -
java入门---集合操作实例之查找 List 中的最大最小值
以下实例演示了如何使用 Collections 类的 max() 和 min() 方法来获取List中最大最小值:import java.util.*; public class Main { public static void main(String[] args) { List list = Arrays.asList("one Two three Four five ...原创 2018-06-01 13:59:25 · 1199 阅读 · 0 评论 -
java入门---集合操作实例之遍历 HashTable 的键值
以下实例演示了如何使用 Hashtable 类的 keys() 方法来遍历输出键值:import java.util.Enumeration;import java.util.Hashtable; public class Main { public static void main(String[] args) { Hashtable ht = new Hashtable(...原创 2018-06-01 14:00:41 · 487 阅读 · 0 评论 -
java入门---集合操作实例之使用 Enumeration 遍历 HashTable
以下实例演示了如何使用 Enumeration 类的 hasMoreElements 和 nextElement 方法来遍历输出 HashTable 中的内容:import java.util.Enumeration;import java.util.Hashtable; public class Main { public static void main(String[] args...原创 2018-06-01 14:01:50 · 679 阅读 · 0 评论 -
java入门---集合操作实例之集合中添加不同类型元素
以下实例演示了在集合类中添加不同类型的元素:import java.util.Map;import java.util.Set;import java.util.SortedMap;import java.util.SortedSet;import java.util.TreeMap;import java.util.TreeSet; import java.util.ArrayList;...原创 2018-06-01 14:03:11 · 876 阅读 · 0 评论 -
java入门---集合操作实例之List 元素替换
以下实例演示了如何使用 Collections 类的 replaceAll() 来替换List中所有的指定元素:import java.util.*; public class Main { public static void main(String[] args) { List list = Arrays.asList("one Two three Four five s...原创 2018-06-01 14:04:21 · 13268 阅读 · 0 评论 -
java入门---集合操作实例之List 截取
以下实例演示了如何使用 Collections 类的 indexOfSubList() 和 lastIndexOfSubList() 方法来查看子列表是否在列表中,并查看子列表在列表中所在的位置:import java.util.*; public class Main { public static void main(String[] args) { List list ...原创 2018-06-01 14:05:27 · 1368 阅读 · 0 评论 -
java入门---数据结构操作实例之链表修改
以下实例演示了使用 listname.add() 和 listname.set() 方法来修改链接中的元素:import java.util.LinkedList; public class Main { public static void main(String[] a) { LinkedList officers = new LinkedList(); off...原创 2018-05-31 10:25:45 · 398 阅读 · 0 评论 -
java入门---数据结构操作实例之旋转向量(swap()函数)
以下实例演示了使用 swap() 函数来旋转向量:import java.util.Collections;import java.util.Vector; public class Main { public static void main(String[] args) { Vector<String> v = new Vector(); v.add...原创 2018-05-31 10:27:20 · 287 阅读 · 0 评论 -
java入门---集合操作实例之数组转集合
以下实例演示了使用 Java Util 类的 Arrays.asList(name) 方法将数组转换为集合:import java.util.*;import java.io.*; public class ArrayToCollection{ public static void main(String args[]) throws IOException{ int ...原创 2018-05-31 10:28:51 · 173 阅读 · 0 评论 -
java入门---集合操作实例之集合比较
以下实例将字符串转换为集合并使用 Collection 类的 Collection.min() 和 Collection.max() 来比较集合中的元素:import java.util.Collections;import java.util.Set;import java.util.TreeSet; class Main { public static void main(Str...原创 2018-05-31 11:08:32 · 707 阅读 · 0 评论 -
java入门---集合操作实例之HashMap遍历
以下实例演示了如何使用 Collection 类的 iterator() 方法来遍历集合:import java.util.*; public class Main { public static void main(String[] args) { HashMap< String, String> hMap = new HashMap< Str...原创 2018-05-31 11:09:37 · 373 阅读 · 0 评论