2021-06-15 ( JAVA, LINUX )
JAVA
- String을 더할 때의 성능 문제를 StringBuffer와 비교
- String끼리 더할 때 매번 String 객체를 생성하기 때문에 성능상 좋지 않다.
- StringBuffer의 경우, 처음 한번만 객체를 생성하므로, 여러번 String을 더한다면 StringBuffer를 사용하면 좋다.
StringBuffer sb = new StringBuffer();
sb.append("문자열").append("문자열2").append("문자열3");
- Math 클래스
- Math 클래스는 생성자가 private으로 돼 있기 때문에 new 연산자를 통해 객체를 생성할 수 없지만, 모든 메소드와 속성이 static으로 정의되어 있기 때문에 객체를 생성하지 않고도 사용할 수 있다.
- Generic
- 사용하는 이유
- 잘못된 data type이 사용될 수 있는 문제를 컴파일 단계에서 제거할 수 있다.
- data type을 국한하기 때문에 요소를 찾아올 때 convert할 필요가 없으므로 성능 또한 향상된다.
- Set
- 중복이 없고 순서도 없는 자료구조.
- HashSet
- Set 인터페이스의 대표적인 클래스.
- TreeSet
- 범위 검색(range search)에 높은 성능을 보이는 자료구조(root-부모-자식).
- linkedHashSet
- 중복은 없되, 저장 순서를 유지한다.
- Iterator 인터페이스의 hasNext()와 next()를 통해 set에 담긴 값을 꺼낼 수 있다.
(FIFO (먼저 들어간 것이 먼저 꺼내진다.))
Set<String> set99 = new HashSet<String>();
set99.add("pu");
set99.add("tin");
Iterator<String> iter99 = set99.iterator();
// hasNext()의 return값은 boolean이고,
// next()의 return 값은 꺼내진 값 자체이다.
while(iter.hasNext()){
String str99 = iter99.next();
System.out.println(str99);
}
- util 라이브러리를 통해 날짜 출력하기
//오늘부터 100일 뒤의 날짜를 "2016년1월1일"의 형식으로 return하세요.
import java.util.*;
public class CalendarExam{
public String hundredDaysAfter(){
Calendar cal=Calendar.getInstance();
cal.add(Calendar.DATE,100);
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH)+1;
int date = cal.get(Calendar.DATE);
String cals = year+"년"+month+"월"+date+"일";
return cals;
}
- list 인터페이스
- Array와 arrayList 차이
- Array는 고정된 길이를 가지며, 값이 삭제될 경우 빈 공간으로 남는다.
- arrayList는 동적인 길이를 가지며, 값이 삭제될 경우 앞쪽으로 shift된다.
- 내부 클래스(Inner class)
- 클래스 내부에 선언하는 클래스
- 장점 1) 캡슐화 2) 상위 클래스 내 멤버들에 대한 접근성
수학 기초
- 지수(quotient)란?
- 어떤 수나 문자의 오른쪽 위에 덧붙여 쓰여 그 거듭제곱을 한 횟수를 나타내는 문자나 숫자.
- log a B
- log a B의 의미는, B가 되도록 만드는 a의 지수.
- 상용 log
- log a B에서 a를 생략하는 경우, 십진법인 10을 나타낸다.
- log100 = 2 (10을 100으로 만드는 지수는 2)
- log10 = 1 (10을 10으로 만드는 지수는 1)
- log1 = 0 (10을 0으로 만드는 지수는 0)
리눅스(CentOS) 명령어
- (1) 파일 및 디렉토리의 생성/삭제/이동
- touch (파일 생성)
- rm (파일 삭제)
- mkdir (디렉토리 생성)
- mkdir -p public/usr/article
- rmdir (디렉토리 삭제)
- rm -rf (디렉토리 또는 파일 삭제)
- mv 1.txt txtFiles/2.txt
- 1.txt를 삭제하고 txtFiles 디렉토리 안에 2.txt로 옮긴다(1.txt의 내용 보존)
- cat (파일 내용 출력)
- (2) 리디렉션 (">"=덮어쓰기, ">>"=추가하기)
- echo 안녕 > 1.txt
- echo 하세요 >> 1.txt