间歇性混吃等死,持续性踌躇满志系列-------------第14天

1、线程的加入

 package code0328;

 import javax.swing.*;
import java.awt.*; public class JoinTest extends JFrame {
//定义两个线程
private Thread threadA;
private Thread threadB;
//定义两个进度条组件
final JProgressBar progressBar = new JProgressBar();
final JProgressBar progressBar2 = new JProgressBar();
int count = 0; public static void main(String[] args) {
init(new JoinTest(), 400, 400);
} public JoinTest() {
super();
//将进度条设置在窗体最北面
getContentPane().add(progressBar, BorderLayout.NORTH);
//将进度条设置在窗体最南面
getContentPane().add(progressBar2, BorderLayout.SOUTH);
progressBar.setStringPainted(true);
progressBar2.setStringPainted(true);
//使用匿名内部类形式初始化Thread实例
threadA = new Thread(new Runnable() {
int count = 0; //重写run方法
public void run() {
while (true) {
//设置进度条的当前值
progressBar.setValue(++count);
try {
//使A休眠0.1秒
threadA.sleep(100);
//使B调用join()方法
threadB.join();
} catch (Exception e) {
e.printStackTrace();
}
}
}
});
//启动线程A
threadA.start();
threadB = new Thread(new Runnable() {
public void run() {
//设置进度条的当前值
progressBar2.setValue(++count);
try {
//使B休眠0.1秒
threadB.sleep(100);
} catch (Exception e) {
e.printStackTrace();
}
//当count变量增长为100时 }
});
threadB.start();
} public static void init(JFrame frame, int width, int height) {
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(width, height);
frame.setVisible(true);
}
}

运行结果图

2、线程的安全

 package code0328;

 public class ThreadSafeTest implements Runnable {
//设置当前总票数
int num = 10;
public void run(){
while (true){
synchronized (""){
if (num > 0) {
try {
Thread.sleep(100);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("tickets:" + --num);
}
} }
} public static void main(String[] args) {
//实例化类对象
ThreadSafeTest t = new ThreadSafeTest();
//以该类对象分别实例化4个线程
Thread TA=new Thread(t);
Thread TB=new Thread(t);
Thread TC=new Thread(t);
Thread TD=new Thread(t);
Thread TE=new Thread(t);
Thread TF=new Thread(t);
//分别启动线程
TA.start();
TB.start();
TC.start();
TD.start();
TE.start();
TF.start();
}
}

运行结果图

3、 线程的插队运行

 package code0328;

 class EmergencyThread implements Runnable {
public void run() {
for (int i = 0; i < 6; i++) {
try {
//当前线程休眠0.1秒实现动态更新
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
//紧急情况下车辆发车
System.out.println("紧急情况:" + i + "号车出发!");
}
}
} public class JoinThread {
public static void main(String[] args) {
//创建新线程
Thread thread = new Thread(new EmergencyThread());
//运行新线程
thread.start();
for (int i = 0; i < 6; i++) {
try {
//当前线程休眠0.1秒实现动态更新
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
//正常情况下车辆出发
System.out.println("正常情况:" + i + "号车出发!");
try{
//使用join()方法让新创建的线程优先完成
thread.join();
}catch (InterruptedException e){
e.printStackTrace();
}
}
}
}

运行结果图

4、InetAdress类的常用方法

 package code0328;

 import java.net.InetAddress;
import java.net.UnknownHostException; public class Adress {
public static void main(String[] args) {
//声明InetAddress对象
InetAddress ip;
//try预警捕捉可能出现的异常
try {
//实例化对象
ip = InetAddress.getLocalHost();
//获取本地主机名
String Localname = ip.getHostName();
//获取本地主机的IP地址
String localip = ip.getHostAddress();
//输出本地主机名
System.out.println("本地主机名:" + Localname);
//输出本地主机的IP地址
System.out.println("本地ip地址:"+localip);
}catch (UnknownHostException e){
//输出异常
e.printStackTrace();
}
}
}

运行结果图

5、数组工具类Arrays

 package cn.intcast.demo14;

 import java.util.Arrays;

 public class Code01Arrays {
public static void main(String[] args) {
int[] intArray = {1,2,3,4,5};
//将int[]数组按照默认格式变成字符串
String inStr = Arrays.toString(intArray);
System.out.println(inStr); int[] array1 = {11,23,4,2,1,10};
Arrays.sort(array1);
System.out.println(Arrays.toString(array1)); String[] array2 = {"o","z","d","s","a"};
Arrays.sort(array2);
System.out.println(Arrays.toString(array2));
} }

运行结果图

6、字符串倒叙排列

 package cn.intcast.demo14;

 import java.util.Arrays;

 public class Code01Arrays {
public static void main(String[] args) {
String intArray = "qweraszxc";
char[] chars = intArray.toCharArray();
Arrays.sort(chars);
for (int i = chars.length - 1; i >= 0; i--) {
System.out.print(chars[i]+",");
} } }

运行结果图

JAVA进阶14的更多相关文章

  1. Java进阶(三)多线程开发关键技术

    原创文章,同步发自作者个人博客,转载请务必以超链接形式在文章开头处注明出处http://www.jasongj.com/java/multi_thread/. sleep和wait到底什么区别 其实这 ...

  2. 从ConcurrentHashMap的演进看Java多线程核心技术 Java进阶(六)

    本文分析了HashMap的实现原理,以及resize可能引起死循环和Fast-fail等线程不安全行为.同时结合源码从数据结构,寻址方式,同步方式,计算size等角度分析了JDK 1.7和JDK 1. ...

  3. Java进阶(三十二) HttpClient使用详解

    Java进阶(三十二) HttpClient使用详解 Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们 ...

  4. Java进阶(五十三)屡试不爽之正则表达式

    Java进阶(五十三)屡试不爽之正则表达式 在线测试网址: http://tool.oschina.net/regex/# 上面的在线测试网址,含有正则表达式的生成,非常实用.大家共勉之! 匹配中文: ...

  5. Java进阶之路

    Java进阶之路——从初级程序员到架构师,从小工到专家. 怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不仅一个刚刚踏入职场的初级程序 ...

  6. Java进阶7并发优化4——JDK并发数据结构

    Java进阶7并发优化4——JDK并发数据结构20131114 由于并发程序和串行程序的不同特点,在串行程序中使用的数据结构可能无法在并行程序中直接的正常使用,因为这些数据结构可能不是线程安全的,所以 ...

  7. java进阶视频分享

    更多资源和教程请关注公众号:非科班的科班. 如果觉得我写的还可以请给个赞,谢谢大家,你的鼓励是我创作的动力 课程目录介绍 01.开班仪式02.并发编程专题之多线程基础03.并发编程专题之Java内存模 ...

  8. Java 进阶 hello world! - 中级程序员之路

    Java 进阶 hello world! - 中级程序员之路 Java是一种跨平台的语言,号称:"一次编写,到处运行",在世界编程语言排行榜中稳居第二名(TIOBE index). ...

  9. [.net 面向对象程序设计进阶] (14) 缓存(Cache) (一) 认识缓存技术

    [.net 面向对象程序设计进阶] (14) 缓存(Cache)(一) 认识缓存技术 本节导读: 缓存(Cache)是一种用空间换时间的技术,在.NET程序设计中合理利用,可以极大的提高程序的运行效率 ...

随机推荐

  1. Bloom Filter(布隆过滤器)如何解决缓存穿透

    本文摘抄自我的微信公众号"程序员柯南",欢迎关注!原文阅读 缓存穿透是什么? 关于缓存穿透,简单来说就是系统处理了大量不存在的数据查询.正常的使用缓存流程大致是,数据查询先进行缓存 ...

  2. 关于使用nodejs的mysql查询时碰到的坑

    今天在编写登录模块时,碰到一个隐蔽的坑,故记录一番 在使用Node.js的mysql模块的query方法时,查询语句使用了 `select password from login where name ...

  3. Unity编辑器扩展

    在开发中有可能需要自己开发编辑器工具,在Unity中界面扩展常见两种情况,拿某插件为例: 1,自建窗口扩展 2,脚本Inspector显示扩展 不管使用那种样式,都需要经常用到两个类EditorGUI ...

  4. socket传输数据循环多次的性能要好于一次

    今天做了一个测试,测试使用python的socket传输一个588k的数据,当传输过程执行一次时,执行时间为2ms左右.我觉着执行一次的时间并不能说明问题,于是就写了一个循环,循环执行1000次,然后 ...

  5. hdu-1054(二分图最大匹配)

    题意:给你一个图,图里有墙壁和空地,空地可以放置一台机关枪,机关枪可以朝着四个方向发射,子弹不能穿透墙壁,但是射程无限,机关枪会被损坏如果被另一台机关枪的子弹打到,问你最多能放置多少台机关枪: 解题思 ...

  6. 【kafka】Java连接出现Connection refused: no further information的解决方法

    在Linux机器(ip:10.102.16.203)安装完kafka(参考:kafka的安装及使用),在windows上使用Java接口访问服务时(参考:Java实现Kafka的生产者.消费者),报异 ...

  7. 洛谷P1197 [JSOI2008]星球大战

    题目 由于题目不要求强制在线,所以可以离线. 而离线的话就会带来许多便利,所以我们可以先处理出全部打击后的图,通过并查集来判断是否连通. 然后再从后往前枚举,得出答案 #include <bit ...

  8. BZOJ 2730 矿场搭建

    割点 割点以外的点坍塌不影响其他人逃生,因为假设我们任取两个个非割点s建立救援站,非割点的任意点坍塌,我们都可以从割点走到一个救援出口. 所以我们只考虑割点坍塌的情况. 我们可以先找出图中所有的割点. ...

  9. thinkphp 迁移数据库 -Phinx 简单说明文档

    php think migrate migrate:create Create a new migration ///创建 migrate:rollback Rollback the last or ...

  10. 【BZOJ4001】[TJOI2015]概率论(生成函数)

    [BZOJ4001][TJOI2015]概率论(生成函数) 题面 BZOJ 洛谷 题解 这题好仙啊.... 设\(g_n\)表示\(n\)个点的二叉树个数,\(f_n\)表示\(n\)个点的二叉树的叶 ...