间歇性混吃等死,持续性踌躇满志系列-------------第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. 破解idea地址

    https://blog.csdn.net/animatecat/article/details/81483174

  2. 类Object

    Object概述 java.lang.Object类是Java语言中的根类,即所有类的父类.它中描述的所有方法子类都可以使用.在对象实例化的时候,最终找的父类就是Object. 如果一个类没有特别指定 ...

  3. VMware Workstation 14安装VMware Tools

    1 单击虚拟机,选择安装VMware Tools 2 此时会在桌面出现VWware Tools 3 双击进入 4 把*.tar.gz压缩文件cp到/home下 5 sudo tar -zvxf  *. ...

  4. Linux 下操作Mysql指令的总结 远程连接的设置

    参考博客:https://www.cnblogs.com/liaocheng/p/4243579.html (常用命令) https://www.cnblogs.com/zhangzhu/archiv ...

  5. Java规则之条件语句中做空判断时使用||和&&常犯的错误

    错误代码示例: public String bar(String string) { //error 1 if (string!=null || !string.equals("" ...

  6. 一入OI深似海 3 —— 纪念我最后一次PJ(上)

    其实在比赛前一天中午上车前, 我还在机房打 I wanna, 感觉就是去杭州旅游的. 诶,还真是这样! 我和jwj在绍兴服务区买了金拱门, 拎着吃的回到车上的时候, 迎面而来羡慕的小眼神. 下午很早就 ...

  7. Python之常用第三方库总结

    在使用python进行开发的时候,经常我们需要借助一些第三方库,进行日常代码的开发工作.这里总结一些常用的类库 1. requests Requests 是用Python语言编写,基于 urllib, ...

  8. Ubuntu常用软件

    //latex公式识别 sudo snap install mathpix-snipping-tool //markdown # or run: # sudo apt-key adv --keyser ...

  9. styled-components解决全局样式'injectGlobal' 废除的问题

    最新版的 styled-components v4 已经将原有的 injectGlobal() 方法替换成了 createGlobalStyle() ,而且用法也和之前的 injectGlobal 方 ...

  10. hdu-4635(tarjan缩点)

    题意:先给你一个n个点,m条边的有向图,问你最多能够增加多少条边,使得这个图不是一个强连通图 解题思路:考虑最多要添加的边数,所以如果能把初始图划分成两个部分,每个部分都是完全图,这两个部分分别用单向 ...