일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- apache kafka
- 도파민형 인간
- Container
- java
- 월칙
- 뉴 컨피던스
- 부자의그릇
- 수부타이
- HTML
- 과제의 분리
- Infresh
- 비메모리 자원
- 참조 계수
- 히든 스토리
- 이펙티브 자바
- 공헌감
- node
- docker
- 레퍼런스 복사
- ESG
- 칭기즈칸의 위대한 장군 수부타이
- try-with-resources
- 모두가 기다리는 사람
- CSS
- kubernetes
- colllection
- sentry
- 쿠버네티스
- try width resources
- 아웃풋법칙
- Today
- Total
Hi
hashCode / equals 객체의 동등성에 판단에 사용되는 메소드 스택을 만들어보자 import java.util.*; class User implements Comparable { // class User { private String name; private int age; public User(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } @Override public String toString() { return "User{" + "name='" + name + '\'' + ", age=" + ..
스택을 만들어보자 package io.thethelab.data; import java.lang.reflect.Method; // Reflection의 문제점 // : 잘못 사용한 경우, 성능이 느리다. class User { private String name; private int age; public User() { this("Unnamed", 0); } public User(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } @Override public String toString() { return "U..
a : Data b = a // copy 복사 정책 2가지 1. 레퍼런스 복사(얕은 복사) * 장점: 속도가 빠르고, 메모리도 덜 쓴다. * 단점: 객체의 파괴 시점을 결정할 수 없다. => 댕글링 포인터 해결방법: 참조 계수에 의한 객체 수명 관리 2. 값 복사(깊은 복사) * 장점: 객체의 파괴 시점을 결정할 필요가 없다. * 단점: 데이터의 크기가 클 수록 속도가 느려지고, 그만큼의 메모리도 소모해야 한다. Reference Counting => 참조 계수 객체의 생성과 소멸 => StringBuilder - 문자열이 수정될 때마다 객체의 생성을 만드는 것을 방지 Integer.valueOf - 같은 숫자는 객체를 생성하지 않고 참조할 수 있도록 한다. 3. 참조 계수 관리하는 2가지 방법 1. G..
Exception * Checked Exception: => 반드시 사용자가 예외 처리를 하던가, 외부로 던져야 한다. => IOException * Unchecked Exception: => 처리하지 않아도 되지만, 예외 발생시 프로그램이 종료된다. 스택을 만들어보자 import java.io.*; class User { private String name; private int age; public User(String name, int age) { this.name = name; this.age = age; } // Java 7: Try with Resource // C#: using 구문 public void save(String filename) { try (FileOutputStream fos..
U : Ctrl + zCtrl + r : REDO YY : Ctrl + c P : Ctrl + v DD : Ctrl + x v : 블록지정 (블록지정후) : 탭 단위 앞으로 뒤로 밀기 Shift :+ { } : 공간 기준 이동^ : home$ : endgg : 맨 위G : 맨 뒤 화면이동 : split / split 파일이름. Ctrl + ww/wW : 커서 이동 설정창 : vi ~/.vimrc Command + . : home, end 터미널Cd : 디렉토리에 들어감Mkdir : 디렉토리 만들기Rm : 파일삭제Rm -r : 폴더삭제Cat + 파일이름 : 파일내용 보여주기 Ctrl + c : 무한루프에서 빠져나가기 -g : 디버그
비메모리 자원에 대한 누수가 명시적인 종료 메소드를 호출하지 않을 경우, 발생할 수도 있고 아닐 수도 있다. => 자바 클래스 라이브러리는 비 메모리 자원에 대한 파괴를 finalize를 통해서 제공하고 있다. 1) 호출 시점이 명확하지 않다. : GC 의 발생시점이 언제인지 알 수 없다. 2) finalize의 호출이 보장되지 않는다. : 누수가 발생할 가능성이 있다. 스택을 만들어보자 class User implements AutoCloseable { private String name; private int age; // File: 비메모리 자원 // => User라는 객체를 사용할 때 반드시 명시적인 종료 메소드를 제공해야 한다. // => Try with Resources 문법을 사용할 수 있도..