Old Posts/Java

Old Posts/Java

Final 과 Immutable 비교 <자바>

final_immutable Final 과 Immutable 비교 final은 키워드이고, Immutable은 패턴이다. final이면 Immutable인가? 아니다. final 변수의 참조주소는 변경될 수 없다. immutable 객체내부의 정보는 객체가 생성될 때 주어진 것이며, 객체가 살아 있는 동안 그대로 보존된다. String class를 immutable class라고 한다. String 객체는 한번 선언되면 그 값이 변경되지 않기 때문이다. Example String name = "Bactoria"; name = "Junoh"; "Bactoria"가 "Junoh"로 변경된것 아니냐고 할 수 있겠지만, 아래처럼 새 객체가 만들어질 뿐이다. 변경은 없다. final은 참조를 변경하지 못한다. f..

Old Posts/Java

StringBuffer -> StringBuilder 어떻게 바뀔까 ?

asd StringBuffer -> StringBuilder buffer -> builder 로 변경하는 코드는 아래와 같습니다. public static void main(String[] args){ //buffer 생성StringBuffer buffer = new StringBuffer(); buffer.append("Add in Buffer"); //builder 생성 StringBuilder builder = new StringBuilder(); builder.append(buffer); //builder 출력 System.out.println(builder.toString());} //결과 : Add in Buffer How ?StringBuffer와 StringBuilder는 클래스가 다른데 ..

Old Posts/Java

자바8 .collect(Collectors.joining()) 람다

이거 읽으시는분들 참고만 해주세요. 비공개하려다가 혹시 도움되는내용이 있을까싶어 공개로 바꿨습니다 제가 람다를 제대로 공부한게 아니라 그냥 주워들은거 정리차 적고있는거라 오히려 헷갈리게 만들었다면 죄송합니다. 잘못된정보있으면 댓글로 남겨주세요 감사합니다 우선 여기서 스트림 프린트찍으면 객체로 나온다. map(String::valueOf)를 추가하면 각리스트가 나올까? 안나온다... joining을 하면? 오 나온다!! 리스트의 각요소가 찍혀나온다. 여기서 Collectors.joining()을 까보면 StringBuilder 생성하고 계속 추가해준후 반환! 굿뜨 String을 추가해주기때문에 앞에서 .map(String::valueOf)로 형변환 시켜줘야만 사용가능하다. 아니 처음에 list에 Strin..

Old Posts/Java

String vs StringBuffer vs StringBuilder

속도 : String StringBuffer = StringBuilder (적음)객체수 : String >>>>>>>>>>>>>>>>>>>>>> StringBuffer = StringBuilder (적음) StringBuffer , StringBuilder는 CharSequence 인터페이스를 구현하니까 StringBuilder는 가장 빠르지만 StringBuffer를 써야할 상황도 있다. Thread-Safety 하지 않아서 쓰레드를 사용한다거나, 사용할지도 모르는 경우에는 StringBuffer를 써야한다. 단일쓰레드에서는 StringBuilder를 사용하면된다. StringBuilder StringBuffer 변경하려면 여기!! 메모리StringBuilder가 메모리를 적게 먹는다?16 -> 34 ..

Old Posts/Java

Thread

Thread 만드는법은 2가지1. Thread 클래스 상속2. Runnable 인터페이스 구현 지금 소켓통신에 쓸 방법이 2번이라서 2번을 살펴본다. t.start(); public class ServerThread implements Runnable { Server s; Socket socket; public ServerThread(Server s){ this.Server = s; } public synchronized void run(){ try{ socket = s.getSocket(); } }catch(Exception e){ System.out.println("비정상 종료"); } } public Socket getSocket(){ // Thread에 Server의 socket 전달 위함. re..

Old Posts/Java

Java Grammar ( for better Algorithm )

1.Scanner sc = new Scanner(System.in);final int T = sc.nextInt();for(int t =1 ; t while(T-->0){ //Algorithm System.out.println(정답);} 2.Scanner -> BufferedReader , StringTokenizer br = new BufferedReader(new InputStreamReader(System.in));st = new StringTokenizer(br.readLine());m = Integer.parseInt(st.nextToken()); // 세로n = Integer.parseInt(st.nextToken()); // 가로k = Integer.parseInt(st.nextToken()..

Old Posts/Java

bitmask

삼성전자 S/W Test A형 쳤을때이거 까먹어서 당황했던 기억이 있다.bitmask..비트연산자..가즈아 int bitmask;bitmask = 5; //(101) print -> bitmask bitmask >> 1;//(10)->(5를 2로 나눈 몫 : 2)--오른쪽으로 한칸 밀어버리기 bitmask>>3 은 8로 나눈 몫이 나옴print -> bitmask & 3; // 4로 나눈 나머지 (1) -> 101 와 11 을 And 한 값이다. 01이 나온다 3을하면 11이니까 4로나눈나머지다. 7을하면 111이니까 8로 나눈 나머지이다. 비트조회bitmask = 22;if( (bitmask & 2) > 0) 10110 & 10 => 00010 (2) 이 값은 if문에서 0보다 크므로 참이다.오른쪽에서..

Old Posts/Java

final

import java.util.Arrays;import java.util.List; public class asd { public static void main(final String[] args) {// TODO Auto-generated method stubfinal List list = Arrays.asList(1,2,3,4,5,6);for(final Integer i : list) {// i = 1 ;

bactoria
'Old Posts/Java' 카테고리의 글 목록