📂Java41_Thread ~ 📂Java52_CollectionEx
자바에서 비동기 처리를 지원하기 위해 제공하는 클래스
public class MainClass {
public static void main(String[] args) {
// Thread 클래스를 상속받은 Thread 클래스
Thread t1 = new TestClass1();
t1.start();
}
}
// Thread를 상속받은 클래스
class TestClass1 extends Thread {
// 쓰레드를 발생시켜 처리할 메서드
public void run() {
try {
for (int i = 0; i < 100; i++) {
Thread.sleep(500);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
public class MainClass {
public static void main(String[] args) {
// Runnable 인터페이스를 구현한 클래스
TestClass2 t2 = new TestClass2();
Thread thread = new Thread(t2);
t2.start();
}
}
// runnable 인터페이스를 구현한 클래스
class TestClass2 implements Runnable {
// 쓰레드를 발생시켜 처리할 메서드
public void run() {
try {
for (int i = 0; i < 100; i++) {
Thread.sleep(300);
System.out.println("TestClass2");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
📂Java41_Thread
여러 쓰레드를 가동 시켰을 때 우선적으로 처리할 쓰레드를 지정할 수 있음
public class MainClass {
public static void main(String[] args) {
Thread1 t1 = new Thread1();
Thread2 t2 = new Thread2();
Thread3 t3 = new Thread3();
// 쓰레드 우선 순위 설정
t1.setPriority(10);
t2.setPriority(3);
t3.setPriority(1);
// 쓰레드 가동
t1.start();
t2.start();
t3.start();
}
}
class Thread1 extends Thread {
@Override
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println("Thread1");
}
}
}
class Thread2 extends Thread {
@Override
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println("Thread2");
}
}
}
class Thread3 extends Thread {
@Override
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println("Thread3");
}
}
}
📂Java42_ThreadPriorty
쓰레드는 비동기 처리
synchronized
키워드를 사용해 동기화 처리public class MainClass {
Thread1 t1 = new Thread1();
Thread2 t2 = new Thread2();
Thread3 t3 = new Thread3();
t1.start();
t2.start();
t3.start();
}
class Thread1 extends Thread {
@Override
public void run() {
TestClass.testMethod("Thread1");
}
}
class Thread2 extends Thread {
@Override
public void run() {
TestClass.testMethod("Thread2");
}
}
class Thread3 extends Thread {
@Override
public void run() {
TestClass.testMethod("Thread2");
}
}
class Testclass {
public synchronized static void testMethod(String name) {
// 임계영역 코드
for (int i = 0; i < 100; i++) {
System.out.printf("%s : %d\n", name, i);
}
}
}
📂Java43_ThreadSynchronize
예측이 가능한 오류가 발생했을 경우 이를 처리할 수 있도록 사전에 코드를 작성하는 것
프로그래밍에서 오류는 예외, 오류 두가지
📂Java44_Exception
Java API 문서
📂Java45_Object
기본 자료형 값을 관리하기 위한 목적으로 만든 클래스
public class MainClass {
public static void main(String[] args) {
// 기본 자료형 값을 객체로 포장하는 용도로 사용
Integer a1 = new Integer(100);
int a2 = a1.intValue();
System.out.printf("a1 : %d\n", a1);
System.out.printf("a2 : %d\n", a2);
// Boxing
Integer a3 = 100;
// UnBoxing
int a4 = a3;
System.out.printf("a3 : %d\n", a3);
System.out.printf("a4 : %d\n", a4);
}
public static int add(Integer a1, Integer a2) {
return a1 + a2;
}
public static Object[] array = new Object[3];
public static void add(Object obj, int idz) {
array[idx] = obj;
}
}
❓위 코드를 이클립스에서 보면 아래와 같이 Integer에 취소선이 생김
Why? 중요도가 떨어져 더 이상 사용하지 않고 앞으로 사라지게 될 기능이기 때문
어떤 기능을 아직 사용하고 있지만 새로운 기능이 나왔기 때문에 조만간 사라지게 될 상태
📂Java46_WrapperClass
자바에서 문자열을 관리하기 위해 제공되는 클래스
String str1 = new String("안녕하세요");
보다 String str1 = "안녕하세요";
처럼 사용 public class MainClass {
public static void main(String[] args) {
String str1 = new String("안녕");
String str2 = new String("안녕");
if (str1 == str2) {
System.out.println("str1과 str2는 같다");
} else {
System.out.println("str1과 str2는 다르다");
}
}
}
➡️ str1과 str2는 다르다
public class MainClass {
public static void main(String[] args) {
String str1 = new String("안녕");
String str2 = new String("안녕");
if (str1.equals()) {
System.out.println("str1과 str2는 같다");
} else {
System.out.println("str1과 str2는 다르다");
}
}
}
➡️ str1과 str2는 같다
public class MainClass {
public static void main(String[] args) {
String str1 = "ABcde";
String str2 = str1.toUpperCase();
String str3 = str1.toLowerCase();
}
}
public class MainClass {
public static void main(String[] args) {
String str1 = "ABcde";
boolean b1 = str1.startsWith("AB");
boolean b2 = str1.endsWith("ff");
}
}
public class MainClass {
public static void main(String[] args) {
String str1 = "ABcde";
int idx1 = str1.indexOf("AB");
int idx2 = str1.indexOf("ff");
}
}
public class MainClass {
public static void main(String[] args) {
String str1 = "ABcde";
int a1 = str1.length();
}
}
public class MainClass {
public static void main(String[] args) {
String str1 = "ABcde";
// 순서값 1부터 끝까지
String str2 = str1.subString(1);
// 순서값 1부터 4 - 1까지
String str2 = str1.subString(1, 4);
}
}
public class MainClass {
public static void main(String[] args) {
String str1 = " aaaa ";
System.out.printf("%s\n", str1.trim());
}
}
📂Java47_String
문자열을 추가하거나 변경 할 때 주로 사용하는 자료형
public class MainClass {
public static void main(String[] args) {
StringBuffer buffer1 = new StringBuffer();
buffer1.append(10);
buffer1.append("문자열");
}
}
➡️ 10문자열
public class MainClass {
public static void main(String[] args) {
StringBuffer buffer1 = new StringBuffer("문자열");
buffer1.insert(1, 10);
buffer1.insert(3, "문자열");
}
}
➡️ 문10문자열자열
public class MainClass {
public static void main(String[] args) {
StringBuffer buffer1 = new StringBuffer("문자열문자열");
// 1 ~ 4 - 1까지를 동해물과 백두산으로 바꿈
buffer1.replace(1, 4, "동해물과 백두산");
}
}
➡️ 문동해물과 백두산자열
public class MainClass {
public static void main(String[] args) {
StringBuffer buffer1 = new StringBuffer("문자열문자열");
// 1 ~ 4 - 1까지 삭제
buffer1.delete(1, 4);
}
}
➡️ 문자열
public class MainClass {
public static void main(String[] args) {
String str1 = buffer1.toString();
}
}
📂Java49_StringBuffer
📂Java50_DateCalendar
데이터의 집합, 그룹
import java.util.ArrayList;
public class MainClass {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String> ();
list.add("문자열1");
list.add("문자열2");
list.add("문자열3");
// 관리하는 객체의 개수
System.out.printf("객체 개수 : %d\n", list.size());
// 객체를 추출하여 변수에 담는다
String str1 = list.get(0);
for (String str2 : list) {
System.out.println(str2);
}
// 순서를 지정하여 삭제
list.remove(1);
// 객체를 지정하여 삭제
list.remove("문자열3");
// 삽입
list.add(1, "추가된 문자열");
System.out.println(list);
// 모두 삭제
list.clear();
}
}
➡️ 객체 개수 : 3
문자열1
문자열2
문자열3
[문자열1, 추가된 문자열]
import java.util.HashMap;
public class MainClass {
public static void main(String[] args) {
HashMap<String, String> map = new HashMap<String, String> ();
map.put("key1", "문자열1");
map.put("key2", "문자열2");
map.put("key3", "문자열3");
String str = map.get("key1");
System.out.println(str);
// 객체 제거
map.remove("key1");
System.out.println(map);
// 모두 제거
map.clear();
}
}
➡️ 문자열1
{key2=문자열2, key3=문자열3}
📂Java51_Collection