본문 바로가기

전체 글16

[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.
[Java] 객체(object) vs. 클래스(class) vs. 인스턴스(instance) * 객체란? - 소프트웨어 세계에 구현할 대상 - 클래스에 선언된 모양 그대로 생성된 실체 (설계도로 구현한 모든 대상) - 인스턴스를 포함하는 포괄적인 의미 - oop의 관점에서 클래스의 타입으로 선언되었을때 '객체' 라고 불림 - 프로그래밍에서의 객체는 속성과 기능을 가지는 프로그램 단위 * 클래스란? - 객체를 만들어 내기 위한 설계도, 툴 - 자바의 가장 작은 단위 - 변수와 메서드의 집합 (상태와 행동) * 인스턴스란? - 설계도(클래스)를 바탕으로 소프트웨어 세계에 구현된 구체적인 실체 - 객체를 소프트웨어에 실체화 하면 그것을 인스턴스라고 부른다 - 실체화된 인스턴스는 메모리에 할당된다 - 인스턴스는 객체에 포함된다 - oop의 관점에서 객체가 메모리에 할당되어 실제 사용될 때 인스턴스 라고.. 2023. 10. 8.