목록DEV&OPS (244)
삶 가운데 남긴 기록 AACII.TISTORY.COM
Math 클래스 수학 계산용 메서드들을 제공합니다. 대부분 static 이므로 인스턴스 생성 없이 바로 사용가능 합니다. public class MathEx { public static void main(String[] args) { int v1 = Math.abs(-5);//절대값 double v2 = Math.ceil(5.3);//올림 double v3 = Math.floor(-5.3); //내림 int v4 = Math.max(5, 9);//최대값 double v5 = Math.min(5.1, 2.3);//최소값 double v6 = Math.random();//0 이상 1 미만 랜덤 숫자 long v7 = Math.round(5.6);//반올림 System.out.println(v1); Syste..
자바는 기본 데이터 타입을 값으로 갖는 객체를 생성할 수 있습니다. 이러한 객체를 wrapper class 라고 합니다. byte : Byte char : Character short : Short int : Integer long : Long float : Float double : Double boolean : Boolean Boxing/Unboxing boxing: 기본 데이터 타입을 래퍼 클래스로 변환 unboxing: 래퍼클래스를 기본 데이터 타입으로 변환 public class BoxingUnBoxing { public static void main(String[] args) { //boxing Integer obj1 = new Integer(100); Integer obj2 = new Int..
Arrays 클래스에는 배열 관련된 기능들을 제공합니다. 모든 메서드는 static이기 때문에 클래스 이름으로 바로 메서드를 사용할 수 있습니다. binarySearch(배열, 찾는값) : 배열 항목중 찾는 값이 있으면 인덱스 값을 리턴 copyOf(원본배열, 복사할길이) : 배열을 복사할 길이만큼 복사해서 배열로 리턴 copyOfRange(원본배열,시작인덱스,끝인덱스) : 배열을 시작인덱스부터 끝인덱스까지 복사해서 배열로 리턴 deepEquals(배열, 배열) : 두 배열의 중첩된 배열 항목까지 비교해서 boolean 리턴 equals(배열, 배열) : 두 배열을 비교 fill(배열, 값) : 배열의 항목에 동일한 값을 저장 fill(배열, 시작인덱스,끝인덱스,값) : 배열의 항목에 시작인덱스부터 끝인..
정규 표현식 [abc] : a,b,c 중 하나의 문자 [^abc] : a,b,c 이외의 하나의 문자 [a-zA-Z] : 알파벳 중 하나의 문자 \d : 한개의 숫자 \s : 공백 \w : 한개의 알파벳 또는 한개의 숫자 ? : 없음 또는 한 개 * : 없음 또는 한 개 이상 + : 한 개 이상 {n} : n개 {n,} : 최소한 n개 {n, m} : n개에서 m개까지 이메일 정규식 \w+@\w+\.\w+(\.\w+)? 예제 import java.util.regex.Pattern; public class PatternEx { public static void main(String[] args) { String regExp = "(010)-\\d{3,4}-\\d{4}"; String data = "010-1..
바이트 배열을 문자열로 변환 문자열은 본래 바이트(byte/char)의 배열로 되어있습니다. 자바에서는 이를 클래스나 기본 데이터 타입처럼 String 을 다룰 수 있습니다. public class ByteToString { public static void main(String[] args) { byte[] bytes = {72, 101, 108, 108, 111, 32, 74, 97, 118, 97 }; //Hello Java String str1 = new String(bytes); System.out.println(str1); String str2 = new String(bytes, 6, 4);//6번째 인덱스부터 길이가 4만큼 System.out.println(str2); } } 실행 결과 He..
자바 프로그램은 운영체제가 아니라 JVM에서 실행됩니다. 그래서 System 클래스를 통해 운영체제의 일부 기능을 제공하고 있습니다. exit() 프로세스를 강제 종료한는 메소드 입니다. public class ExitEx { public static void main(String[] args) { for(int i = 0; i
Objects Object 클래스와 이름이 유사한 Objects 클래스는 static으로 객체를 다루기 위한 여러가지 메서드들을 지원합니다. 객체 비교 compare() import java.util.Comparator; import java.util.Objects; public class CompareExample { public static void main(String[] args) { Student s1 = new Student(1); Student s2 = new Student(1); Student s3 = new Student(2); int result = Objects.compare(s1, s2, new StudentComparator()); System.out.println(result);..
자바 API documents http://docs.oracle.com/javase/8/docs/api/ Java Platform SE 8 docs.oracle.com Object class 클래스는 extends를 생략하면 암시적으로 Object 클래스를 상속받습니다. Object는 자바의 최상위 부모 클래스입니다. equals() 객체가 동등한 지 비교합니다. public class Member { public String id; public Member(String id) { this.id = id; } @Override public boolean equals(Object obj) { //인수가 Member Type인지 확인 if(obj instanceof Member) { //Member type..
하드웨어 오동작이나 고장으로 인해 프로그램이 오류가 나는것을 에러라고 부르고 예외는 사용자의 잘못된 조작이나 개발자의 잘못된 코딩으로 인해 오류가 나는 것을 말합니다. try catch finally public class TryCatchFinally { public static void main(String[] args) { try { String data1 = null; String data2 = null; data1 = args[0]; data2 = args[1]; int value1 = Integer.parseInt(data1); int value2 = Integer.parseInt(data2); int result = value1 + value2; System.out.println(result)..
익명 객체 익명 객체는 이름이 없는 객체를 말합니다. 단독으로 생성할 수 없고 클래스를 상속하거나 인터페이스를 구현해야 생성할 수 있습니다. 보통 UI이벤트 처리 객체나 스레드 객체를 간편하게 생성할 목적으로 활용합니다. public class Person { void wake() { System.out.println("일어납니다."); } } public class Anonymous { Person field = new Person() { void work() { System.out.println("출근합니다."); } void wake() { System.out.println("6시에 일어납니다."); work(); } }; void method1() { Person localVar = new Per..
중첩(Nested) 클래스, 인터페이스 중첩 클래스는 클래스 내부에 선언한 클래스를 말합니다. 마찬가지로 클래스 내부에 선언하는 인터페이스는 중첩 인터페이스입니다. 각 클래스간 긴밀한 관계에 있을 때, 혹은 UI 프로그램을 만들 때 이벤트를 처리할 목적으로 많이 활용됩니다. public class View{ public interface OnClickListener{ public void onClick(View v); } } 인스턴스 멤버 클래스 class A{ class B{ ... } } 외부에서 B클래스의 인스턴스 객체를 만들려면 A클래스의 인스턴스 객체를 먼저 생성하고 B클래스의 인스턴스를 생성해야 합니다. A a = new A(); A.B b = a.new B(); 만약 중첩 클래스를 stati..
추상 클래스(abstract class) 클래스 이름 앞에 abstract 키워드를 붙은 클래스를 추상 클래스라고 합니다. 추상 클래스는 인스턴스를 생성할 수 없고 상속 후에 오버라이딩을 할 목적으로 생성합니다. 추상화된 클래스를 부모 클래스로 사용함으로써 자손 클래스들의 공통된 필드나 메서드의 이름을 통일시켜서 설계 목적으로 사용합니다. Abstract.java public abstract class Abstract { public String owner; public Abstract(String owner) { this.owner = owner; } public void turnOn() { System.out.println("전원 켬"); } public void turnOff() { System.o..
객체지향 언어 객체지향 언어는 캡슐화, 상속, 다형성이 특징입니다. 클래스(class) 클래스는 기본 데이터 타입들(int , char, ...)로 된 변수(필드)들과 그들을 다루기 위한 동작(method)들을 정의한 객체(object)로 인스턴스(instance: 메모리에 구현된 객체)를 생성하기 위한 설계도입니다. 클래스 내부에 정의된 변수(필드)와 메서드들을 그 객체의 멤버(member)라고 부릅니다. 클래스 이름은 대문자로 시작하도록 이름을 정하는 것이 관례입니다. 캡슐화 데이터(필드)를 외부로부터 숨겨서(은닉화) 접근을 허용하지 않는 대신 제어 가능한 일부 필드와 메서드를 제공합니다. 자바에서는 접근 제한자를 이용하여 구현합니다. 접근 제한자 public : 모든 접근 허용 protected :..
if~else class Sample { public static void main(String[] args){ int num = (int)(Math.random()*6) +1;//주사위 번호 뽑기 if(num == 1) { System.out.println("1번이 나왔습니다."); }else if(num == 2){ System.out.println("2번이 나왔습니다."); }else { System.out.println("3번이상이 나왔습니다."); } } } switch class Sample { public static void main(String[] args){ int num = (int)(Math.random()*6) +1;//주사위 번호 뽑기 switch(num) { case 1: Sy..
단항 연산자 1. 부호 연산자: +, - int i = -100; 2. 증감 연산자: ++, -- int x = 1; int y = 1; int result1 = ++x + 10;//먼저 x를 1증가 후 연산 int result2 = y++ + 10;//연산 후 y를 1 증가 3. 논리(boolean) 부정 연산자: ! boolean isComplete = false; System.out.println(isComplete); System.out.println(!isComplete); 4. 비트 반전 연산자: ~ 비트 반전 연산자는 정수 타입에만 사용됩니다. 비트 반전을 하고 나면 데이터 타입이 int 타입이 됩니다. 최상위 비트는 부호비트이므로, 비트 반전시 최상위 비트 포함해서 반전이 되므로 부호가 반..