일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- list 컬렉션
- Graph
- buffer
- Selection Sorting
- s
- 혼자 공부하는 C언어
- C 언어 코딩 도장
- R
- C programming
- Stack
- stream
- Serialization
- 알기쉬운 알고리즘
- 이스케이프 문자
- coding test
- 이것이 자바다
- 윤성우의 열혈 자료구조
- insertion sort
- datastructure
- 윤성우 열혈자료구조
- JSON
- Algorithm
- 메모리구조
- Today
- Total
목록Programming Language/Java (32)
TechBlog
직렬화(Serialization)- Java Object(객체)를 Byte Stream(바이트 스트림)으로 변환하는 과정 직렬화는 하는 이유- Java Object는 JVM이 정한 규칙에 따라 메모리에 저장되어 있는데 이는 외부(OS, 네트워크)에서 해석할 수 없다. 외부와 데이터를 주고받기 위해서는 직렬화 규칙에 따라 연속적인 바이트 흐름(스트림)으로 변환하는 과정을 거쳐야 한다. - 직렬화한 바이트 스트림은 OS가 읽어서 파일로 저장하거나 네트워크로 내보낼 수 있다.

프로그램 에러, 오류- 프로그램이 실행 중 어떤 원인에 의해서 오작동 하거나 비정상적으로 종료 되는 경우 컴파일 에러- 컴파일시에 발생하는 에러 런타임 에러- 실행시에 발생하는 에러- 런타임 에러는 다시 에러(error)와 예와(exception)으로 구분한다. - 런타임 error: 프로그램 코드에 의해서 수습될 수 없는 심각한 오류. ex)메모리 부족, 스택오버플로우 - (런차임) exception: 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류. 프로그래머의 적절한 코드로 비정상적 종료를 막을 수 있다. 논리적 에러- 실행은 되지만, 의도와 다르게 동작하는 것.예외 클래스의 계층 구조- 자바는 실행 시 발생할 수 있는 오류를 미리 클래스로 정의했다.- 모든 예외는 Exception 클..
Java로 프로그램을 개발하려면 컴퓨터에 **JDK(Java Development Kit)**를 설치해야 한다. JDK는 JRE(Java Runtime Environment)와 javac(자바 컴파일러) 등 개발에 필요한 도구들이 포함된 개발 키트다.JRE는 JVM(Java Virtual Machine)과 자바 표준 라이브러리(프로그램 실행에 필요한 클래스 파일 등)로 구성되어, 자바 프로그램을 실행할 수 있는 환경을 제공한다.JDK를 설치하면 설치 디렉터리의 bin 폴더에 java 파일이 있는데, 이 파일이 JVM을 띄우는 실행파일(런처)이다. 같은 디렉토리에 javac 파일이 java 컴파일러다. 예를 들어, MyClass.java라는 자바 소스파일을 만든 후,javac MyClass.java 이렇게..
에러(Error)- 컴퓨터 하드웨어 오동작 또는 구장으로 인해 애플리케이션, 응용프로그램 실행 오류가 발생하는 것. 예외(Exception)- 에러 이외에 프로그램 자체에서 발생하는 오류- 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류예외의 종류- compile exception, checked exception, 컴파일 예외 : 프로그램 컴파일 시 발생하는 예외- runtime exception, uncheckec exception, 런타일 예외 : 실행 도중 발생하는 예외- RuntimeException 상속 여부로도 구분 할 수 있음. 예외 클래스- Java는 예외를 클래스로 관리함.- 모든 예외 클래스는 java.lang.Exception 클래스를 상속 받음...

List 컬렉션은 객체를 인덱스로 관리한다.List 컬렉션에서 공통적으로 사용가능한 List 인터페이스 메서드 ArrayList- ArrayList에 객체를 추가하면 내부 배열에 객체가 저장. 일반 배열과 차이점은 제한 없이 객체를 추가할 수 있다. LinkedList- ArrayList와 사용 방법은 동일하지만 내부 구조는 완전히 다르다. ArrayList는 내부 배열에 객체를 저장하지만, LinkedList는 인접 객체를 체인처럼 연결해서 관리한다. ArryaList, LinkedList 차이- LinkedList는 자료를 체인 처럼 관리하기 때문에 특정 위치에서 객체를 삽입하거나 삭제하면 바로 앞뒤 링크만 변경하면 되므로 빈번한 객체 삭제와 삽입에서 ArrayList보다 높은 성능을 보여준다...
컬렉션 프레임워크: Java언어에서 자주 사용되는 자료구조에 대해서 객체들을 효율적으로 추가, 삭제 검색할 수 있도록 모아놓은 인터페이스 총칭 주요 인터페이스: List, Set, Map 특별히 List와 Set은 객체를 추가, 삭제, 검색하는 방법에 있어서 공통점이 있기 때문에 공통된 메서드만 따로 모아 Collection 인터페이스로 정의해두고 이것을 상속하고 있다.Map은 키와 값을 하나의 쌍으로 관리하는 자료구조라 List 및 Set과 사용방법이 다르다. 인터페이스 별 컬렉션 특징인터페이스 분류특징구현 클래스CollectionList- 순서를 유지하고 저장- 중복 저장 기능ArrayList, Vector,LinkedListSet- 순서를 유지하지 않고 저장- 중복 저장 안됨HashSet, Tre..
문자열 타입의 숫자를 진짜 숫자로 변환해야 할 때가 있는데 그때 사용하는 메서드가 Interger 클래스에 있는 parseInt()이다. 메서드 선언부 다음과 같다. "321"처럼 문자열 타입으로 된 숫자를 파라미터로 전달하면 int 형태의 321로 반환을 해준다.public static int parseInt(String s) throws NumberFormatException 어떤 진법으로 변경할 건지도 설정할 수 있는 오버로딩된 형태의 메서드도 있다. 아래처럼 두 번째 파라미터로 변경하고 싶은 진법에 해당하는 숫자를 전달하면 된다.public static int parseInt(String s, int radix) ..
String은 내부적으로 char[]로 이루어져 있다. 다시 말해서 문자배열이라는 뜻이다. 배열은 연속된 데이터를 저장하는 자료구조인데, 그렇다면 인덱스를 통해서 값을 추출할 수도 있고, 반대로 값으로 인덱스를 찾을 있어야 할 것이다. 이러한 기능을 제공하는 메서드가 있는데, charAt과 indexOf이다. charAtcharAt의 메서드 선언부는 이렇게 생겼다.public char charAt(int index) => 메서드의 매개변수로 인덱스를 전달하면, String 에서 인덱스에 위치한 문자를 반환한다. indexOf다음은 indexOf 메서드의 선언부이다.public int indexOf(int ch) => 매개변수로 문자를 전달하면, 전달받은 문자가(내부적으로 숫자라서 int 타입) Str..