당연히 array 보다 arraylist 가 좋은데 굳이 array를 쓸이유가잇나?
-> 속도때문에 예전엔 적절히 array 를 썼는데, 최근에 기술발전으로 인해 거의 차이가없다.
map 에서 성능향상된게 hashmap 인데, 어떤식으로 향상된걸까?
arraylist 와 hashmap 사용의 용도 구분만 잘해도 좋은 개발자인 것 같다.
정말 <> 문법과 <Object> 문법이 아무 차이가 없는가? 그렇다면 다이아몬드 문법의 장점은 뭔가?
사실. 리스트에서 인덱스로 관리하고 맵에선 key로 관리하는데. 맵에서 key를 0,1,2,3으로 주면
리스트와 같은거 아닌가?
-> 하지만 리스트는 순서가 정해져 있어 N번째껄 찾을때 연산이 유용하고, 맵은 키값이 0,1,2,3으로 되있을지언정 정렬이 순서대로 된게 아니라서 속도가 다른건가??? 궁금타.
요즘 immutable 한 list, map도 많이 쓴다.
List<String> readOnlyList = Collections.unmodifiableList(mylist);
List<String> readOnlyMap = Collections.unmodifiableMap(myMap);
이렇게 선언해 두면 위의 두 자료구조에 add 또는 put할시 exception이 남.
-> 직접 해봐야지.
이 immutable 관련해서, java9 에서는 of 라는 유용한 메소드가 추가됨.
리스트나 맵을 초기화 함과 동시에 요소를 넣을수있어 코드가 간결해짐.
근데 디폴트로 immutable 처리가 되서 역시 add나 put 메소드 사용시 exception.
(최근에는 immutable이 대세라고함ㅋㅋ)
이러한 immutable list,map 이게 왜 생겼냐?
클라우드 등으로 인해 병렬컴퓨팅이 많이 사용되면서ㅇㅇ
-> 자세하게 알아봐야겟다. 완벽하게 이해가 안감.
메소드 접근제한자에서
a함수가 b를 부르고 b함수가 c를 부르는 상황에서
a는 public 이고 c는 private 면
a가 c를 부르는건데 이건머지?
정적메소드가 있으면 동적 메소드도 있는건가?
자바8에서 생긴 가변인자. 가변파라미터.
method(int... values){
}
이런식으로 쓴다고함
Java에서는.. call by value 인가? call by reference 인가? 에 대한 내용들이 분분한데
내생각은
primitive type(기본타입)은 call by value
-함수에 넣을때 변수자체가 넘어가는게 아니라 값의 복사본이 넘어감
reference type(객체타입)은 call by reference
-객체자체가넘어감
string s1 = 안녕
string s2 = s1
s2 = 하이
s1 =?
"하이"
굳이 멤버변수를 직접 접근하지 않고 private로 설정후 getter setter 로 접근하는 이유?
->직접접근도 가능하지만 위처럼 하는게 자바의 문화임.
-> js나 코틀린은 멤버변수에 직접접근하기도 함.
어쨋든 자바가 이렇게 하는 이유는 2가진데 프로그램의 어느부분이 변수를 변경할수있는지 제어할수있고, 언제든지 내부표현을 바꿀수있다.
'java' 카테고리의 다른 글
SOLID 원칙 (0) | 2023.08.08 |
---|---|
java - 객체에 대한 인사이트들. (0) | 2023.06.02 |
자바 빌드 툴들의 개념과 종류에 대해 (feat.노예비유) (0) | 2022.01.26 |
Math.random() 함수는 진짜 랜덤일까? (0) | 2021.10.14 |
replace 관련 자바 함수들에 대해 (0) | 2021.10.06 |
댓글