Language/Java
-
ThreadLanguage/Java 2023. 11. 29. 00:01
프로그램이 실행되면 OS로 부터 메모리를 할당 받아 프로세스 상태가 된다. 하나의 프로세스는 하나 이상의 thread를 가지게 된다. 프로세스의 실제 작업을 수행하는 단위는 thread이다. Multi Threading 여러 Thread가 동시에 수행되는 프로그래밍. Thread는 각각 자신만의 작업 공간을 가진다. (= Context ) 각 Thread 사이에서 공유하는 자원 Shared Resource이 있을 수 있다. ( static instance ) 여러 Thread가 자원을 공유하여 작업이 수행되는 경우 서로 자원을 차지하려는 race condition이 발생할 수 있다. 여러 Thread가 공유하는 자원 중 경쟁이 발생하는 부분을 임계 영역 Critical Section이라고 한다. 임계 영..
-
제네릭 Generic 프로그래밍Language/Java 2023. 11. 28. 00:01
제네릭 자료형 클래스에서 사용하는 변수의 자료형이 여러개 일 수 있고, 그 기능은 동일한 경우 클래스의 자료형을 특정하지 않고 추후 해당 클래스를 사용할 때 지정할 수 있다. 실제 사용되는 자료형의 변환은 컴파일러에 의해 검증되므로 안정적인 프로그래밍 방식이다. 자바 10부터 자료형 추론이 가능해졌다. T 자료형 범위 제한 상위 클래스에서 선언하거나 정의하는 메서드만 활용 할 수 있게 제한한다. 간단한 Generic 클래스 생성 예시 public class GenericPrinter { private T anything; public T getAnything() { return anything; } public void setAnything(T anything) { this.anything = anyth..
-
Maven , GradleLanguage/Java 2023. 11. 28. 00:01
보고 배운 사이트 1 : dev-coco.tistory 보고 배운 사이트 2 : techblog.woowahan 보고 배운 사이트 3 : charlezz Maven java 용 프로젝트 관리 도구 Apache에서 ant 대안으로 만든 오픈소스 소프트웨어. 프로젝트의 전체적인 라이프 사이클을 관리해주는 도구. 프로젝트에서 사용 할 라이브러리들을 관리해주는 도구. 특히 장점인 부분으로, 사용할 라이브러리와 관련되어있는 부수적인 라이브러리들을 네트워크를 통해 자동으로 업데이트 해준다. POM : Project Object Model maven의 기능을 사용하기 위해 pom.xml이 사용된다. pom.xml에서 주요하게 다루는 기능은 다음과 같다. 프로젝트 정보 : 프로젝트의 이름 빌드 설정 : 소스, 리소스,..
-
SQLiteLanguage/Java 2023. 11. 25. 00:01
java.sql.DriverManager 데이터베이스 드라이버 관리 java.sql.Connection 데이터베이스 연결에 관한 라이브러리 Connection conn = DriverManager.getConnection("jdbc:sqlite:" + DB_NAME); Statement stmt = conn.createStatement(); java.sql.Statement SQL 문을 실행하는 객체 stmt.execute("DELETE FROM TABLE"); java.sql.ResultSet 데이터베이스에서 쿼리 실행 결과로 반환된 결과 집합. resultSet = stmt.executeQuery("SELECT * FROM TABLE"); while (resultSet.next()) { String ..
-
Stream_2: 시작 연산자Language/Java 2023. 11. 25. 00:01
컬렉션 요소 Collection에 stream()이 정의되어 있다. 그래서 Collection의 자손인 List와 Set을 구현한 클래스들은 모두 이 메서드로 스트림을 생성할 수 있다. List list = Arrays.asList("a", "b", "b"); Stream s = list.stream(); 배열 배열을 소스로 하는 스트림을 생성하는 메서드는 Arrays와 Stream에 static 메서드로 존재한다. Stream.of(T .. a,b,c) // 가변인자 Stream.of(new String[]{"a", "b"}) IntStream.of(1,2,3,4) // 가변인자 IntStream.of(new int[]{1, 2, 3}) // IntStream -> Stream Stream si = I..
-
Stream_1: 소개Language/Java 2023. 11. 25. 00:01
1 데이터 소스를 추상화하고, 데이터를 다루는 데 자주 사용되는 메서드들을 정의해 놓은 클래스. 데이터 소스를 추상화하였다는 것은 데이터 소스가 무엇이든 간에 같은 방식으로 다룰 수 있게 되었음과 코드의 재사용성이 높아졌음을 의미한다. 배열이나 컬렉션 뿐만 아니라, 파일에 저장된 데이터도 모두 같은 방식으로 다룰 수 있다. String[] strArr = new String[]{"c", "aaa", "fff", "bb"}; List strList = Arrays.asList(strArr); // 🔻 스트림 생성 Stream strStream1 = strList.stream(); Stream strStream2 = Arrays.stream(strArr); // int 배열 스트림으로 만들기 int[] nu..
-
자바의 정석 3판 _ 연습문제 02~03 오답 정리Language/Java 2023. 11. 23. 00:09
연습문제와 해답 출처 : 자바의 정석 저자 GitHub 자료형의 크기 자료형 / 크기 1 byte 2 byte 4 byte 8 byte 논리형 boolean 문자형 char 정수형 byte short int long 실수형 float double 참조자료형 Object 모든 참조 자료형의 크기는 4 Byte 정수 자료형의 표현 범위 byte는 1byte 크기를 갖기때문에 byte에 담을 수 있는 정수 값의 범위는 2⁸ = -128 ~ 127 char와 short는 둘다 2byte로 같은 크기를 갖지만, char는 문자 표현 자료형이고, short는 정수 표현 자료형으로, 값의 표현 범위가 다르다. 문자 표현을 하는 char은 0~2¹⁶-1 까지를 표현 할 수 있지만, shot는 음수와 양수를 모두 표현하..
-
코딩테스트용 프로젝트 템플릿!! 😆Language/Java 2023. 11. 21. 00:01
/ Main.java import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; /** Index site 0 : 백준 01. 02. site 1 : 프로그래머스 01. 2차원으로 만들기 [https://school.programmers.co.kr/learn/courses/30/lessons/120842] 02. 정렬 [https://school.programmers.co.kr/learn/courses/30/lessons/42748] */ public class Main { public static void main(String[] args) throws ClassNotFoundException, InvocationTar..