1편 스레드 객체생성 및 실행2편 스레드 우선순위와 객체공유 및 동기화3편 스레드 상태 및 제어 =============알아두기싱글코어 cpu를 이용한 멀티스레드 작업은 스레드가 번갈아가며 실행하는 동시성이라 하고멀티코어 cpu에서 개별스레드를 동시에 작업하는것을 병렬성이라한다.============= 스레드 우선순위란?스레드 스케줄링에 의해 스레드들이 짦은 시간에 번갈아가면서 run()메소드를 조금씩 실행하는데 우선순위 설정으로 높은 우선순위가 낮은 우선순위 스레드보다 실행 상태를 더 많이 가지도록 스케줄링하는 것을 말한다.우선순위는 1부터 10까지 있으며 1이 가장 우선순위가 낮고 기본적으로 따로 설정이 없으면 5로 설정이된다. package test; public class Ex2 { public ..
1편 스레드 객체생성 및 실행2편 스레드 우선순위와 객체공유 및 동기화3편 스레드 상태 및 제어 =============알아두기스레드란 한가지 작업을 실행하기 위해 순차적으로 실행할 코드를 실처럼 이어 놓았다고 해서 유래된 이름이다.============= 스레드 객체생성 및 사용방법 package test; public class Ex1 { public static void main(String[] args) { /* * Runnable은 스레드가 실행할 수 있는 코드를 가지고있는 객체고 * 인터페이스타입이라 구현 객체를 만들어 대입해야한다. * run()메소드가 정의되어있어 재정의해 스레드가 실행할 코드를 작성한다. */ // 1.인터페이스 방식 Runnable runnable1 = new Runna..
0 10진수 빈자리는 0으로 채움 # 10진수 빈자리는 채우지 않음 . 소수점 - 음수기호 , 단위구분 E 지수문자 ; 양수, 음수 구분하여 출력 % 100을 곱한 후에 %를 붙음 \u00A4 통화기호 public class zzzzz { static DecimalFormat df; public static void main(String[] args) { double n = 12345.6789; //결과:12346 df = new DecimalFormat("0"); df.format(n); //결과:12345.7 df = new DecimalFormat("0.0"); df.format(n); //결과:012345.67890 df = new DecimalFormat("000000.00000"); df.fo..
Math 클래스는 모두 static이라 바로 클래스로 사용이 가능함. public class zzzzz { public static void main(String[] args) { //절대값 결과:1 Math.abs(-1); //올림값 결과:1 Math.ceil(0.1); //버림값 결과:0 Math.floor(0.9); //최대값 결과:9 Math.max(1,9); //최소값 결과:1 Math.min(1,9); //랜던값 결과:0.0
문자열을 검증하는 방법으로 사용한다. [ ] 한개의 문자 \d 한 개의 숫자 [0-9]와 동일 \s 공백 \w 한 개의 알파벳 또는 한 개의 숫자 ? 없음 또는 한개 * 없음 또는 한개 이상 + 한개 이상 {n} 정확히 n개 {n,} 최소한 n개 {n,m} n개부터 m개까지 ( ) 그룹핑 public class zzzzz { public static void main(String[] args) { //정구 표현식 문자열 검증 boolean result = Pattern.matches("[abc]", "a"); //true boolean result2 = Pattern.matches("[abc]", "e"); //false //abc 이외의 하나의 문자 boolean result3 = Pattern.mat..
StringBuffer와 StringBuilder의 차이점은 버퍼는 멀티 스레드환경에서 사용할 수있게 동기화가 적용되어 있고 빌더는 단일 스레드 환경에서만 사용할 수 있게 만들어져있다. public class zzzzz { public static void main(String[] args) { //StringBuilder 객체 생성 방법 버퍼도 같음 //16개의 문자를 저장할 수 있는 초기버퍼 StringBuilder sb = new StringBuilder(); //주어진 개수만큼 문자를 저장할수있는 초기버퍼 StringBuilder sb2 = new StringBuilder(20); //매개값을 초기버퍼 StringBuilder sb3 = new StringBuilder("안녕하세요."); sb3...
리턴타입 메소드 설명 char charAt(int index) 특정 위치 문자리턴 boolean equals(Object anObject) 두 문자열 비교 byte[ ] getBytes() byte[ ]로리턴 int indexOf(String str) 문자열 위치 번째 리턴 int length() 총 문자수 리턴 String replace(바꾸려고하는 문자, 바꾸려는 문자) 문자를 대치한 새로운 문자로 리턴 String substring(자르려는 문자 위치) 문자위치부터 끝까지 문자열로 리턴 String substring(자르는 시작위치, 끝 위치) 시작위치~ 끝위치까지의 문자만 리턴 String toLowerCase() 알파벳 소문자로 문자열 리턴 String toUpperCase() 알파벳 대문자로 ..
실행시 코드에대한 오류 처리를 한다. public class zzzzz { public static void main(String[] args) { try{ //예외처리할 코드 입력 method(); }catch(Exception e){ //예외 클래스 입력 //다중 catch 또는 |를 사용하여 멀티 catch 사용가능 //예외발생시 예외처리 코드 입력 }finally{ //예외가 발생되든 안되든 항상 실행해야하는 코드 입력 //항상 실행해야할 코드가 없으면 finally는 만들지 않아도됨 } } //throws를 이용하여 예외 떠넘기기 public static void method() throws Exception{ //예외발생시 메인메소드 catch문을 실행한다. } }
추상클래스란?클래스들의 공통적인 특성을 추출해서 선언한 클래스를 추상 클래스라 한다.객체를 직접 생성하지 못하고 상속(extends) 뒤에만 올수 있는 클래스다.만약 추상메소드를 정의한경우에는 반드시 재정의를 해줘야한다. 용도클래스들의 필드와 메소드의 이름을 통일할 목적으로 사용함공통적인 필드와 메소드를 추상 클래스로 만들어 코드 작성할때 시간을 절약하는 용도로 사용함 public class zzzzz { public static void main(String[] args) { A a = new A("김철수"); //추상클래스를 상속받은 클래스객체생성 a.namePrint(); System.out.println(a.name); a.agePrint(); System.out.println(a.age); } ..
public class zzzzz { public static void main(String[] args) { B b = new B(); //객체 생성 b.printA(); //상속으로 인해 클래스 A를 사용 할 수 있습니다. b.printB(); } static class A{ void printA(){ System.out.println("부모"); } } //A를 상속합니다. //자바 특성상 다중 상속은 할 수 없습니다. static class B extends A{ void printB(){ System.out.println("자식"); } } }