study/java
-
[JAVA] hashCode & equalsstudy/java 2020. 9. 2. 00:12
Object 클래스에는 hashCode() 메서드와 equals() 메서드가 정의되어 있다. Object 클래스에 있는 hashCode() 메서드는 자바 홈페이지에 이렇게 정의되어 있다. Returns a hash code value for the object. This method is supported for the benefit of hash tables such as those provided by HashMap 객체의 해시 코드값을 반환합니다. 이 메서드는 HashMap에서 제공하는 것과 같은 해시 테이블의 이점을 위해 지원됩니다. 즉, HashTable이나 HashMap은 hashcode를 이용함으로써 객체를 저장하는 다른 컬렉션들에 비해 장점을 갖게된다는 것이다. 장점은 어떤 장점일까? Ke..
-
[JAVA] Exceptionstudy/java 2020. 8. 21. 19:15
Throwable 클래스 예외 처리를 할 수 있는 최상위 클래스이다. Exception과 Error는 Throwable의 상속을 받는다. Error : 오류 Error는 컴퓨터 하드웨어의 오동작 또는 고장으로 인해 응용 프로그램에 문제가 생겼거나 JVM 실행에 문제가 생겼을 경우에 발생하는 것을 말한다. 따라서 개발자가 미리 예측해서 처리할 수 없다. Exception : 예외 Exception은 사용자의 잘못된 조작 혹은 개발자의 잘못된 코딩으로 인해 발생하는 프로그램의 오류를 말한다. Exception이 발생하면 Error와 마찬가지로 프로그램이 종료가 된다. 하지만 Exception은 Exception Handling(예외 처리)를 통해 프로그램이 종료되지 않고 정상적으로 동작할 수 있게 한다. C..
-
[JAVA] 제네릭study/java 2020. 8. 8. 00:31
제네릭 ( Generic ) 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법 다양한 타입의 객체들을 다루는 메소드나 컬렉션 클래스에 컴파일 시의 타입체크를 해주는 기능 제네릭이 필요한 이유 public class ArrayListEx { private int size; private Object[] elements = new Object[5]; public void add(Object value){ elements[size++] = value; } public Object get(int index){ return elements[index]; } } 위의 코드는 ArrayList를 직접 만든 예시다. public class Main { public static void main(String[..
-
[JAVA] GCstudy/java 2020. 8. 6. 00:43
GC란? Java는 JVM ( Java Virtual Machine ) 위에서 구동이 된다. JVM에서 애플리케이션이 사용하는 메모리를 관리하는 작업이 있는데 이를 GC라고 한다. Garbage Collection의 약자로 런타임 시에 힙 영역에 저장되는 객체들을 주기적으로 확인하여 사용하지 않는 객체를 해제하여 정리하는 역할을 한다. Stop-the-world GC를 실행하기 위해 JVM이 애플리케이션 실행을 멈추는 것을 말한다. Full GC가 발생하면 JVM은 애플리케이션의 실행을 멈추고 GC를 실행하는 스레드만 동작한다. 웹 서버에서 Full GC가 발생하면 서비스는 중단될 것이고 서비스가 중단된 동안 각종 Time out이 발생할 것이며 미뤄진 작업들이 쌓여 또 다른 Full GC를 발생시키게 ..
-
[JAVA] Jar,Warstudy/java 2020. 8. 4. 22:46
Jar와 War 모두 Java의 jar 툴을 이용하여 생성된 압축 파일 여러 클래스 파일과 리소스 파일들을 모아서 애플리케이션을 쉽게 배포하고 동작하게 할 수 있게 해주는 역할 Jar ( Java Archive ) 클래스와 같은 Java 리소스와 속성 파일, 라이브러리 파일 등이 포함되어 있다. Java 애플리케이션이 동작할 수 있도록 Java 프로젝트를 압축한 파일로 볼 수 있다. 라이브러리나 응용 소프트웨어를 배포하기 위한 포맷 ec2에 배포하는 방법 ec2 서버에 jar 파일을 설치하고 실행하면 배포 완료 ( 톰캣이 jar 안에 내장되어 있음 ) War ( Web Application Archive ) servlet/jsp 컨테이너에 배치할 수 있는 웹 애플리케이션 압축 파일 포맷 jsp, serv..
-
[JAVA] static 키워드study/java 2020. 7. 30. 23:30
static field(변수, 상수) public class Car{ public String name; public static int sNumberOfCars = 0; public final static String CAR_NAME = "SANTAFE"; public Car(String name){ this.name = name; this.sNumberOfCars++; } } 클래스 안에서 변수를 선언하면 멤버 변수로 선언이 된다. 멤버 변수에 접근하려면 car.name 처럼 객체를 통해서 접근해야 한다. public static void main(String[] args) { Car car = new Car(); System.out.println(car.name); } 만약 static 키워드를 사..
-
[JAVA] Try-with-resourcesstudy/java 2020. 7. 30. 21:37
try-with-resources : try(...)에서 선언된 객체들을 try가 종료될 때 자동으로 자원을 해제해주는 기능 try에서 선언된 객체가 AutoCloseable 인터페이스를 구현하였다면 Java는 try 구문이 종료될 때 객체의 close() 메소드를 호출해줌. 기존에 try-catch-finally로 자원 해제하는 방법 Java7 이전에 try-catch-finally 구문에서 자원을 해제하려면 번거로웠다. public static void main(String[] args) throws IOException { BufferedReader br = null; try{ br = new BufferedReader(new InputStreamReader(System.in)); int input..
-
JAVA - 5study/java 2020. 7. 20. 23:56
Thread 구현하는 방법 1. Thread 객체를 상속받아 사용하는 방법 2. Runnable 인터페이스를 구현하여 사용하는 방법 wait() vs sleep() wait()은 다른 Thread에서 notify()나 notifyAll()로 깨워야지 일어나고 sleep()은 지정한 시간만큼 중지한다. run() vs start() run()을 호출하는 것은 생성된 스레드를 실행시키는 것이 아니라 단순히 클래스에 속한 메소드를 호출하는 것이고 start()는 새로운 스레드가 작업을 시작하는데 필요한 호출 스택(공간)을 생성한 다음에 run() 을 호출해서 생성된 호출 스택에 run()이 첫 번째로 저장하게끔 한다. Process vs Thread 메모리를 할당받아 실행되고 있는 프로그램을 Process라고..