일단 씻고 나가자

23.03.24 본문

Study/닥치는 대로 주워 담기

23.03.24

일단 씻고 나가자 2023. 3. 25. 05:52

2023. 03. 24 금요일

 

- list와 향상된 for문의 관계?

: List<Integer> list ... add(0, 1); add(1,2);

하면 for (int I : list) 했을 때 add된 숫자가 차근차근 나온다.

이는 new HashMap.put(0, list) 하여 int I : get(0) 해도 나온다.

 

 

- LinkedList 직접 구현 논리? (insert, 추가)

: 노드가 되는 Node 클래스를 만들고, Node의 다음을 가리키는 Node next를 만들어둔다. 데이터가 담길 변수 또한 만든다.

해당 Node를 관리할 List 클래스엔 첫 Node를 가리키는 head 변수를 만들고, 매개변수로 데이터를 담고 해당 데이터를 담은 새로운 Node를 만든다. headnull일 땐 분기하여 head가 새로운 Node를 가리키게 하고, 아니라면 head를 가리키는 temp 변수를 만들어,

temp = temp.next로 마지막 노드까지 while문을 돈다.

마지막 Node에 도달하면 마지막 노드인 temp.next = 새로운 Node로 연결한다.

 

 

- 파스칼의 삼각형 코드 구현의 논리? (ArrayList 이용)

: new ArrayList<new ArrayList<Integer>> 이렇게 이중 list를 만들고,

I 행의 j번째 값은 I-1 행의 j-1, j 값을 더한 것과 같으므로

이중 for문을 통해 I for문은 매 줄을 만드는 용도, j for문은 I-1 list의 값을 더해준다.

, j0이거나 jI-1size의 이상 인덱스를 접근하면 안 되므로

for(j=0; j<i+1; j++) if(j==0 || j==i) 로 접근을 제한해둔다.

 

 

- 자바의 깊은 복사, 얕은 복사란? map에서의 복사 방법 예시?

: 깊은 복사란 다른 레퍼런스로 같은 객체를 가리킬 때, 다른 레퍼런스로 값을 변경하면 원본 객체도 영향을 받는 복사.

얕은 복사란 값만 복사. 복사 후엔 둘은 서로 다른 개별 객체가 됨.

따라서 보통 .clone()을 이용하면 깊은 복사가 되며, map같은 컬렉션에선 생성자에 넣어주면 깊은 복사가 된다. Map cloneMap = new HashMap<originalGeneric>(originalMap);

 

 

- JDBC Template이란? 사용 방법?

: 중복 코드를 제거해주기 위한 클래스. sql은 직접 써야 한다. 실무에서 많이 사용한다.

사용 방법은 JdbcTemplate~ 클래스를 만들고, 생성자에 DataSource 인자를 받아

jdbcTemplate = new JdbcTemplate(datasouce) 하고 @Autowired 걸어주면 된다.

+ 생성자가 하나일 땐 autowired 생략 가능.

 

SimpleJdbcInsert 라는 클래스는 매개로 jdbcTemplate을 받고,

withTableName(“테이블 명”).usingGeneratedKeyColumns(“아이디”); 로 쿼리를 쉽게 보냄.

통상 jdbcTemplates.query(“sql문 작성”, rowmapper으로 객체 생성 콜백); 으로 사용한다.

 

 

- git 에서의 merge? 사용 방법?

: 서로 다른 branch를 통합하는 것.

BbranchA로 통합하려면,

A로 먼저 checkout A에서 git merge B 입력하면 됨.

 

그 후 graph 명령어를 입력하면 빨간 일직선쪽은 원래 master의 파일, 초록색 분기된 선과 별표는 병합된 branch의 파일들이다.

병합된 branch는 지워도 되므로, git branch d second 명령어를 입력하면 지워진다.

 

 

'Study > 닥치는 대로 주워 담기' 카테고리의 다른 글

23.03.28  (0) 2023.03.29
23.03.27  (0) 2023.03.28
23.03.23  (0) 2023.03.24
23.03.22  (1) 2023.03.23
23.03.21  (0) 2023.03.22