본문 바로가기

Java13

[Java] == vs. equals() 자바에서 두 객체 혹은 변수를 비교할 때 == 연산자 또는 equals() 메소드를 사용한다. int 와 boolean과 같은 기본 원시 타입(Primitive Type)의 비교는 == 연산자를 사용하여 비교한다. String 또는 클래스와 같이 참조 타입(Reference Type)의 비교는 == 연산자 또는 equals() 메소드를 사용하여 비교할 수 있다. == 연산자(주소 값 비교), 값 비교(equals) == 연산자와 equals() 메소드의 가장 큰 차이점은 == 연산자는 비교하고자 하는 두 대상의 주소 값을 비교하고, equals0 메소드는 비교하고자 하는 두개의 대상의 값 자체를 비교한다는 것이다. 문자열 비교 equals() equals() 메소드는 최상위 클래스인 Object에 포함되.. 2023. 11. 22.
[Java] Java 실행 옵션에 대해서 알아보자! (feat. GC) Java 실행 옵션이란? - 자바 프로그램을 실행시켜 주는 명령어. 명령어의 사용법은 아래와 같다. $ java -help Usage: java [options] [args...] (to execute a class) or java [options] -jar [args...] (to execute a jar file) or java [options] -m [/] [args...] java [options] --module [/] [args...] (to execute the main class in a module) or java [options] [args] (to execute a single source-file program) Arguments following the main class, sou.. 2023. 11. 21.
[Java] System.out.println() 왜 사용하면 안돼? 멀티 스레드 환경에서 System.out.println()를 사용하게 되면, 하나의 스레드가 println() 이 끝날때까지 대기해야한다. 이로 인해 프로그램 소요시간이 길어질 수 있으며, 성능을 저하시킬 수 있다. 보통 자바 언어를 처음 배우기 시작할때 "Hello World"를 콘솔에 출력하는 것을 배운다. System.out.println() 이란? - 자바 언어로 프로그래밍할 때 디버깅 용도로 콘솔에 출력하는 메소드 근데, 실무에서는 System.out.println()을 사용하지 말라고 한다. 왜 사용하지 말라고 할까? - 가장 큰 이유는 '성능 이슈'가 있다. println() 메소드를 찾아가면 아래와 같이 synchronized 블록으로 구현되어있는 것을 볼 수 있다. synchronized.. 2023. 11. 20.
[Java] try-with-resources 를 사용해보자! Try-with-resources는 try 구문에 리소스를 선언하고, 리소스를 다 사용하고 나면 자동으로 반납(close) 해주는 기능이다. Java 7 버전 이후에 추가되었다고 한다. 아래의 코드는 try-catch-finally 구문을 일반적으로 그리고 습관적으로 작성한 예제이다. FileWriter 라는 자원을 생성하고, 자원을 다 사용하고 나면 catch 블록 혹은 finally 블록 에서 해당 자원을 해제(반납)한다. 선언해야할 자원이 더 많아진다면? 해제해야할 자원도 많아지고, catch 문도 많아지고, 코드가 너무 길어진다.... 자원을 해제하지 못하고 예외가 발생한다면? 자원 해제가 안된채로 남는다... 이 때문에 보통 finally 블록에 자원 해제 코드를 작성한다. IDE 의 warni.. 2023. 11. 20.