Records

2021-06-15 ( JAVA, LINUX )

지후0816 2021. 6. 16. 08:51
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