\-JDK (Java Deveopment Kit)\-JRE (Java Runtime Environment)\-JVM (Java Virtual Machine)간단히 설명하자면 JDK는 자바를 이용해서 소프트웨어를 development할 때 이용하는 여러가지 도구들이 포함
next()와 nextLine()간에 차이가 있다는 것을 알게되었다.
가끔 함수를 작성하곤 할 때, 인자 전달 및 매개변수의 전달 방식이 헷갈려 헤매던 경우가 있었다. 이를 방지하고자 이번 포스트에서 정리를 해보려고 한다.
전체 출력 자릿수 및 소수 자릿수를 제한할 수 있으며, 여러 형식을 지정할 수 있다.
증감연산자는 ++, -- 두 가지이며, 피연산자의 앞 또는 뒤에 붙어 값을 1 증가시키거나 1 감소시킨다. 연산자가 변수의 앞에 붙을 때 전위 연산자라고 부르고, 뒤에 붙을 때 후위 연산자라고 부른다.
자바의 기본형과 참조형 변수에 대해 알아보자
String 클래스 = char[](문자 배열) + 메서드(기능)
Arrays 클래스 관련 메서드
선언위치에 따른 변수의 종류
instance variable의 사용 여부로 갈림
오버로딩(overloading) : 한 클래스 안에 같은 이름의 메서드를 여러 개 정의하는 것
iv 초기화 매서드
같은 클래스 내 생성자에서 다른 생성자를 호출할 때
기존의 클래스로 새로운 클래스를 작성하는 것
상속받은 조상의 메서드를 자신에 맞게 변경하는 것.
객체 자신을 가리키는 참조변수. 인스턴스 메서드(생성자)내에만 존재. 조상의 멤버를 자신의 멤버와 구별할 때 사용.
서로 관련된 클래스의 묶음
클래스와 클래스의 멤버(멤버 변수, 메서드)에 부가적인 의미 부여
여러 가지 형태를 가질 수 있는 능력
미완성 설계도, 미완성 메서드를 갖고 있는 클래스
추상 메서드의 집합구현된 것. 구현된 것이 전혀 없는 설계도라고 생각하자.
클래스 안의 클래스
Java에는 문자열을 관리하는 클래스가 여러 가지 존재한다. 처음에는 단순히 String 클래스만 사용했지만, 오늘 코드리뷰 이후 메모리와 쓰레드 측면에서 차이가 난다는 것을 알게 되었다. 오늘을 계기로 확실히 짚고 넘어가보면 좋을 듯하여 글을 쓰게 되었다.
프로그래밍 패러다임은 프로그래머에게 프로그래밍의 관점을 갖게 해 주고, 결정하는 역할을 한다.예를 들어 함수형 프로그래밍(FP)은 상태값을 지니지 않는 함수값들의 연속으로 생각할 수 있다.
이름이 없는 일회용 클래스로, 클래스의 정의와 생성을 동시에 한다.
프로그램 오류
Java로 알아보는 쓰레드의 구현과 실행
main 쓰레드,싱글 쓰레드와 멀티 쓰레드,쓰레드의 I/O 블락킹(blocking)에 대해 알아보자
쓰레드의 우선순위, 쓰레드 그룹에 대하여 알아보자
데몬 쓰레드, 쓰레드의 상태들을 알아보자.
쓰레드의 실행을 제어할 수 있는 메서드가 제공된다.아래의 메서드를 활용해서 보다 효율적인 프로그램의 작성이 가능하다.
멀티 쓰레드 프로세스에서는 다른 쓰레드의 작업에 영향을 미칠 수 있다.진행중인 작업이 다른 쓰레드에게 간섭받지 않게 하려면, '동기화'가 필요하다.쓰레드의 동기화 : 한 쓰레드가 진행중인 작업을 다른 쓰레드가 간섭하지 못하게 막는 것동기화하려면, 간섭받지 않아야 하는
예외 처리하기(try-catch)
연산자 new를 이용해서 발생시키려는 예외 클래스의 객체를 만든 다음 키워드 throw를 이용해서 예외를 발생시킨다.
예외 선언하기(= 예외 떠넘기기, 알리기)
우리가 직접 예외 클래스를 정의할 수 있다. (상속을 통해서~)
High-Level Concurrency 프로그래밍을 하기위해서는? 스레드를 만들고, 관리하는 작업을 애플리케이션에서 분리해야 한다.Java 8부터는 그런 기능을 Executors에게 위임할 수 있게 됐다.
Callable과 Future에 대해 알아보자
자바에서 비동기(Asynchronous) 프로그래밍을 가능하게 하는 인터페이스이다. 기존의 Future를 사용해서도 어느정도 가능했으나, 제약이 많았다.
IntellJ에서 JDBC 연결하기
static import를 사용하는 이유 JUnit5를 이용한 단위 테스트 코드를 작성하던 중, assertj에 대해 import가 아닌 import static으로 패키지를 받아서 이용한다는 사실을 알게 되었다.
모든 클래스의 최고 조상. 오직 11개의 메서드만을 가지고 있다. notify(), wait() 등은 쓰레드와 관련된 메서드이다.(여기서는 다루지 않음)
문자열을 다루기 위한 클래스
오늘은 박재성님의 Next Step 스터디를 진행 중에 겪었던 문제인 Java의 InputStreamReader가 UTF-8로 decode를 해도 한글로 볼 수 없는 이유에 대해서 알아보고자 합니다.
JVM을 통해 자바 프로그램 실행 과정을 알아봅니다.