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);
	}
  
}

Java编程小案例_ide

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();
		}
	}
}

Java编程小案例_System_02

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();
	}
}

Java编程小案例_java_03

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编程小案例_System_04

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线程创建并启动");
	}
}

Java编程小案例_ide_05