본문 바로가기

학원 일기/학원-JAVA

개인자바 공부하면서 배우는것들 3주차

 

 

[chart.At(n]

-문자열은 n번째 문자를 가져오는 메소드이다

-String은 char타입을 담고있는 배열과 같다

ex) String변수.chart.At(2) => 인덱스 1번째 문자열을 char타입으로 반환

 

[substring(n,m)]

-n이상 m미만 까지의 문자열을 반환받는다

ex) String타입변수.substring(0,1) => 인덱스0번째 문자를 String 타입으로 반환 -2반환

ex) 

 

[compareTO()]

-두 변수의 값의대한 비교를 해준다

- int변수.compareTo(int변수) => 두수의 차이를 왼쪽-오른쪽의 형식으로 int타입으로 반환한다

-String변수.compareTo(String변수)

=>  문자열 비교같은경우 인덱스0번째부터 비교하기 시작한다 

케이스1) 처음부터 끝까지 동일하다 => 0반환

케이스2) 처음부터 동일하다 어느 한쪽의 문자열이 끝난다 => 남는 문자만큼 길이 반환 ex) ABCD AB 비교시 2반환

케이스3) 처음부터 끝까지 비교중 어느한쪽이라도 일치하지 않는값이 나왔다 => 아스키코드 차이만큼 반환

ex) ABCD  CD = > -2반환 

케이스4) 대소문자 의 차이가있는경우 => 다른 문자라 생각하여 ASCII 차이의값인 32반환 ex ) A a 32반환

 

[Object]

모든 클래스의 최상위 클래스 이다

 

[객채 hashCode]

객체를 식별할 하나의 정수값을 말한다.

 

[hashCode()]

객체의 메모리 번지를 이용해 해시코드를 만들어 리턴한다

 

 

[객체의 비교 방법]

hashCode() 리턴   (같을경우) =>                 equals() 리턴값  => (같을경우) => 동등한 객체 

                        (다를경우) => 다른 객체                         => (다를경우) => 다른 객체

 

[논리정 비교]

객체가 달라도 값이 같으면 같다

 

[물리적 비교]

값이 같아도 객체가 다르면 다르다

   

[instanceof]

-참조변수가 참조하고있는 인서튼서의 타입이 동일한지 아닌지 boolean타입으로 반환한다

-null은 flase를 리턴한다

ex) A변수 instanceof B변수

 

 

 

[궁금한점 -직접 코딩해보고 정리할것]

^^

(번외)

Cannot invoke equals(int) on the primitive type int 이거보면 ==는 주소보다는 더정확히는 스택에서 값을 찾는거같기도하다 equals로는 기본형변수 호출자체가불가능하니

 

int[] a = new int [5]; 는되는데 int[]a = [5];는 안된다 배열은 무조건 새로운객체를 생성해야하는건가? 라는생각이들었다

equals와 ==에대한 이해하는과정에서 생긴 의문점이 꼬리를 물고물고있는중이다..

^^^^

 

[toString]

값을 문자열로 변환해 반환한다

 

이걸보면 Human 클래스에 선언된 toString메소드가 뭐가특별한것인지 하나도 모르겠다

어차피 반환타입 String에 return값이있으면 일반메소드랑다를게 뭔가

 

근데 정말 신기한것은 이블로그의 저자가  이어서 이런글을 올린다

이건걍 println이라는 것을사용해서 str변수를 찍어낸것이아닌가? 근데 저자는 여기서 toString메소드가 사용됐다고 한다

이게 무슨말일까 

 

여기서는  사실 hu안에있는 toString이 자동으로 실행된것같은데 뭐가 신기하다는건지 모르겠다

 

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 

object 에서 오버라이드 해보려다가 tostring에서 개념박살나서 5시간 멘탈 탈탈 털린후에 개념이해 제대로못하고 넘어감

 

그래도 다시읽을때는 object라는것을 알아보려는 과정에서 부분적으로 무엇을알고 느꼈는지 생각해보자

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 

java.lang는 슈퍼 엄청나게 매우 중요한 패키지다 하나하나 다 해석하려다가 보니 그냥 대단한 패키지라는걸로 이해됨 중요한 클래스 매우많음

 

오토박싱은 너무뜬금없게 느껴지긴 하는데 기본형을 인티저로 캐스팅해주는 것처럼이해됨 (그렇다면 (integer)5이렇게 써야 맞는거 아닌가요?) 라고생각했는데 그냥 인티저타입의 숫자5선언 아닌가? 왜오토박스라고 붙이지

 

int i5 = i2; 이걸보면 그냥 캐스팅없이 형변환이되는것 같다 

 

integer클래스는 형변환기능도 있지만 여러가지가 많은것같다

medium.com/@ohc43312/%EC%9E%90%EB%B0%94-int%EC%99%80-integer-%EC%9D%98-%EC%B0%A8%EC%9D%B4-bd8163f5ed0a<< 개인 일기처럼 정리한글인데 생각정리에 도움이되어 참조함력구간 <= 마지막숫자 이런느낌으로 나온다 ex)첫번째 글자만 자를려면 substring(0,1)이렇게 << 문자배열[인덱스 번호].substring( , ) 도가능 

 

필요한경우 기본형타입도 객체에 저장한다는것은 알겠는데 이게왜 Wrapper클래스의 설명인 이유인지모르겠다

 

근데 보니까 double이아니라 Double이다 ? 기본형타입을 Wrraper클래스를 이용할때는 첫문자가 소문자에서 대문자로 바꿔있다!!!

 

그리고 그과정이 박싱 반대로 꺼낼때는 언박싱~ 이해가 명쾌하게 되기시작했다 굳굳맨~~

 

오쉣 머지 사진이 다날라갔따..

 

문젠데 이게 내생각에는 기본형변수는 객체가없으니까 Integer클래스로 박싱을해서 ex)정수를 객체화시킨후 정수에

il.MAX_VALUE <<이게무슨 기능있는것같긴함 아마 최대값구하는거일듯 ? 최대값구해서 max_int에 저장했다

 

하지만 아래같은경우는 i2가 기본형변수로 선언됐기때문에 저 MIN_VALUE를 못쓰는것같음 아니면 Integer가아니여소 불가능한거일수도 있음

 

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 

                     StringBuffer 가 뭐지????????????????????????????????

 

퍼온건데 음 문자열 1개를 받을때원래 16개의 메모리?같은걸 기본으로썼어야 했다면 StringBuffer는 그렇지 않다 효율적인기능이다!라고 우선해석됨type int 이거보면 ==는 주소보다는 더정확히는 스택에서 값을 찾는거같기도하다 equals로는 기본형변수 호출자체가불가능하니

 

이런식으로 문자계속 추가하는것같음 toString으로 는 값옮겨서 출력하려는건지 왜저러는지 이유는 잘모르겠음

 

 

다음에 메서드체이닝 왔는데 예시가 너무좋아서 퍼옴^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 

 

 

object 에서 오버라이드 해보려다가 tostring에서 개념박살나서 5시간 멘탈 탈탈 털린후에 개념이해 제대로못하고 넘어감

 

 

 

그래도 다시읽을때는 object라는것을 알아보려는 과정에서 부분적으로 무엇을알고 느꼈는지 생각해보자

 

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 

 

 

java.lang는 슈퍼 엄청나게 매우 중요한 패키지다 하나하나 다 해석하려다가 보니 그냥 대단한 패키지라는걸로 이해됨 중요한 클래스 매우많음

 

 

 

오토박싱은 너무뜬금없게 느껴지긴 하는데 기본형을 인티저로 캐스팅해주는 것처럼이해됨 (그렇다면 (integer)5이렇게 써야 맞는거 아닌가요?) 라고생각했는데 그냥 인티저타입의 숫자5선언 아닌가? 왜오토박스라고 붙이지

 

 

 

int i5 = i2; 이걸보면 그냥 캐스팅없이 형변환이되는것 같다 

 

 

 

integer클래스는 형변환기능도 있지만 여러가지가 많은것같다

 

medium.com/@ohc43312/%EC%9E%90%EB%B0%94-int%EC%99%80-integer-%EC%9D%98-%EC%B0%A8%EC%9D%B4-bd8163f5ed0a<< 개인 일기처럼 정리한글인데 생각정리에 도움이되어 참조함력구간 <= 마지막숫자 이런느낌으로 나온다 ex)첫번째 글자만 자를려면 substring(0,1)이렇게 << 문자배열[인덱스 번호].substring( , ) 도가능 

 

 

 

 

 

 

 

 

이런게 있음 문자열변수.compareTo(문자열 변수) 이렇게하면 두수의 차이만큼 숫자로 출력됨 맨왼쪽의 값보다 

 

 

 

( ) 안의 값이 더작다면 차이를 양수로출력 그 반대라면 음수로 출력된다

 

 

 

 

 

 

 

이거 잠깐보류.. 좀어려운거같아서 더쉬운난이도부터 없을까찾아보고옴---------------------------------

 

 

'학원 일기 > 학원-JAVA' 카테고리의 다른 글

자바 12일차  (0) 2021.03.03
자바11일차  (0) 2021.03.02
자바 10일차  (0) 2021.03.01
자바9일차  (0) 2021.02.25
자바 8일차 수정사항 없음  (0) 2021.02.24