10
2019
07

JAVA学习-Java高级-多线程之线程模型与使用

使用new创建线程后,可以通过Thread类的方法来设置线程的各种属性

线程进入阻塞状态:调用sleep方法,等待同步锁,调用了wait方法

终止线程的方法:执行完正常退出、使用stop方法强制退出、使用interrupt方法强制中断退出

Java实现方法,1:通过继承Thread类实现多线程,2:通过实现Runnable接口,再使用Thread实现多线程


package pkg1;
public class ThreadDemo {
public static void main(String[] args) {
System.out.println("———————————————demo 1—————————————————");
MyThread1 t1 = new MyThread1();
t1.setName("t1");// 设置线程名称
MyThread1 t2 = new MyThread1();
t2.setName("t2");// 设置线程名称
t1.start();// 线程启动
t2.start();// 线程启动
try {
t1.join();// 主线程等待新线程完成再继续往下执行
t2.join();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("demo 1 结束");
System.out.println("———————————————demo 2—————————————————");
MyRunnable1 r1=new MyRunnable1();
MyRunnable1 r2=new MyRunnable1();
Thread t3=new Thread(r1,"r1");
Thread t4=new Thread(r2,"r2");
t3.start();
t4.start();
try {
t3.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
try {
t4.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
//继承Thread类,直接启动线程
class MyThread1 extends Thread {
public MyThread1() {}//无参构造函数
public MyThread1(String name) {//有参构造函数,参数为:线程名称
super(name);
}
@Override
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println(this.getName() + " " + i);
}
super.run();
}
}
//类实现Runnable接口,再用Thread线程启动执行
//一般多使用此方式实现多线程,方便实现资源共享(多线程使用同一对象,例如:多窗口卖同一车票)
class MyRunnable1 implements Runnable{
@Override
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println(Thread.currentThread().getName() + " " + i);
}
}
}


13
2019
03

JAVA学习-Java高级-Java反射机制

Java高级-Java反射机制

1.反射概述

什么是反射?

反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。

Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象方法的功能称为Java语言的反射机制。

23
2018
12

JAVA学习-Java高级-GUI之AWT事件的基本概念、事件处理

Java高级-GUI之AWT事件处理

AWT事件的处理过程中,主要涉及3类对象:

Event(事件):用户对组件的一个操作,称之为一个事件,以类的形式出现,例如键盘操作对应的事件类是KeyEvent。事件实例在该事件发生时由系统自动产生。每一种事件都对应专门的监听者。

Event Source(事件源):事件发生的场所,通常就是各个组件本身,例如按钮Button。

23
2018
12

JAVA学习-Java高级-GUI之布局管理器

Java高级-GUI之布局管理器

容器内可以存放各种组件,而组件的位置和大小都是由容器内的布局管理器来决定的。在AWT中为我们提供了以下5种布局管理器:

FlowLayout 流式布局管理器

BorderLayout 边界布局管理器

20
2018
12

JAVA学习-Java高级-GUI之AWT框架和容器

Java高级-GUI之AWT框架和容器

GUI概述:GUI(Graphical User Interface)图形化用户界面。用户和程序之间可以通过GUI能方便友好地进行交互。在Java语言中,JFC(Java Foundation Classed)是开发GUI的API集,它主要包含以下几个部分。

AWT(Abstract Window Toolkit)抽象窗口工具包:Java开发用户界面最初的工具包,是建立JFC的主要基础;

20
2018
12

JAVA学习-Java集合之Collections类的使用

Java集合之Collections类的使用

Collections为类集工具类,定义了若干用于类集和映射的算法,这些算法被定义为静态方法,比如排序,搜索等,

        具体用法可查看Java API文档。


19
2018
12

JAVA学习-java集合之HashSet、TreeSet使用

java集合之HashSet、TreeSet使用

Set容器的特点

Set容器是一个不包含重复元素的Collection,并且最多包含一个null元素,它和List容器相反,Set容器不能保证其元素的顺序。

最常用的两个Set接口的实现类是HashSet和TreeSet

16
2018
12

JAVA学习-java集合之TreeMap

java集合之TreeMap

TreeMap类通过使用红黑树实现Map接口,键不能为null

TreeMap提供按排序顺序存储键/值对的有效手段,同时允许快速检索

不像散列映射,树映射保证它的元素按关键字升序排序

TreeMap构造方法:

16
2018
12

JAVA学习-java集合之HashMap

java集合之HashMap

Map接口详解

映射(map)是一个存储键/值对的对象。给定一个键,可查询得到它的值,键和值都是对象

键必须是唯一的,值可以重复

有些映射可以接收null键和null值,而有的不行

09
2018
12

JAVA学习-Java集合框架介绍、ArrayList、LinkedList类的常见使用方法

Java集合框架介绍

所谓的框架就是一个类库的集合。集合框架就是一个用来表示和操作集合的统一的架构,它包含了实现集合的接口与类。

集合框架中不同的集合类有各自不同的数据结构,所以在使用中要根据应用的性能要求来选择不同的集合类。

集合类存放在java.util包中,今后进行程序编写时将大量使用集合类和相关接口。