1.求三角形的面积。
package java_11_10;
import java.text.DecimalFormat;
public class TriangleArea {
public static void main(String[] args) {
int a = 3;
int b = 4;
int c = 5;
double s = 1.0 / 2 * (a + b + c);
double area = Math.sqrt(s * (s - a) * (s - b) * (s - c));
DecimalFormat df = new DecimalFormat(".##");
String st = df.format(area);
System.out.println("三角形的三边之长分别为:" + a + " " + b + " " + c);
System.out.println("三角形的面积为:" + area);
System.out.println("三角形保留两位小数的面积为:" + st);
}
}
2.创建单线程实例
package java_11_20;
public class OnlyThread {
public static void main(String[] args) {
run();
}
private static void run() {
// TODO Auto-generated method stub
for (int count = 0, row = 1; row < 10; row++, count++) {
for (int i = 0; i < count; i++) {
System.out.print("*");
}
System.out.println();
}
}
}
3.通过Thread创建线程实例。
package java_11_20;
public class ThreadDemo1 extends Thread {
public ThreadDemo1() {
// TODO Auto-generated constructor stub
}
ThreadDemo1(String name) {
super(name);
}
// 重载run()方法
@Override
public void run() {
// TODO Auto-generated method stub
super.run();
for (int count = 1, row = 1; row < 10; row++, count++) {
for (int i = 0; i < count; i++) {
System.out.print("*");
}
System.out.println();
}
}
public static void main(String[] args) {
ThreadDemo1 td = new ThreadDemo1();
td.start();
}
}
4.创建多线程的实例。
package java_11_20;
public class CreateMoreThread extends Thread {
public CreateMoreThread() {
// TODO Auto-generated constructor stub
}
CreateMoreThread(String szName) {
super(szName);
}
@Override
public void run() {
// TODO Auto-generated method stub
super.run();
for (int count = 1, row = 1; row < 10; row++, count++) {
for (int i = 0; i < count; i++) {
System.out.print("*");
}
System.out.println();
}
}
public static void main(String[] args) {
CreateMoreThread td1 = new CreateMoreThread();
CreateMoreThread td2 = new CreateMoreThread();
CreateMoreThread td3 = new CreateMoreThread();
td1.start();
td2.start();
td3.start();
}
}
5.Runnable接口创建线程的方法。
Runnable接口用于实现线程类,该接口只有一个run()方法,此方法必须有实现了此接口的类来实现。
package java_11_20;
public class CreThreadRunnable implements Runnable {
@Override
public void run() {
// TODO Auto-generated method stub
for (int count = 1, row = 1; row < 10; row++, count++) {
for (int i = 0; i < count; i++) {
System.out.print("*");
}
System.out.println();
}
}
public static void main(String[] args) {
Runnable rb = new CreThreadRunnable();
Thread td = new Thread(rb);
td.start();
}
}
线程的生命周期
正如人的一生会历经出生,幼儿,青年,成年,老年,死亡一样,线程也有它的生命周期。
Java的任何一个线程都有4种状态,分别是:
- 创建状态
- 可运行状态
- 不可运行状态
- 退出状态
一个线程总会处于这4种状态中的一种。
线程的创建和启动
由前面的线程创建代码案例可知 ,线程相关类Thread中默认的run()方法没有任何可操作代码,为了让创建的线程实例实现相应的功能,必须重新定义run()方法。
实例:通过两种方法创建并启动线程实例。
package java_11_20;
public class ThreadCreAndStart {
public static void main(String[] args) {
Runnable r = new RunnableThread();
Thread rt = new Thread(r);
rt.start();
SubThread st = new SubThread("SubThread");
st.start();
}
}
class RunnableThread implements Runnable {
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("Runnable线程创建并启动");
}
}
class SubThread extends Thread {
public SubThread() {
// TODO Auto-generated constructor stub
}
SubThread(String name) {
super(name);
}
@Override
public void run() {
// TODO Auto-generated method stub
super.run();
System.out.println("SubThread线程创建并启动");
}
}