목록languages (29)
Written by coh at home
1. 상속 상속은 주로 기존 클래스의 정보에서 내가 필요로 하는 메소드나 변수가 필요할 때 사용된다. ->기존 클래스의 필드와 메소드들 + 내가 필요해서 만든 필드와 메소드. 1-1. 상속시킬 때 알아야 하는 것들. ->상속 시킬 때는 class 이름 옆에 extend하고 상속시킬 클래스를 적는다. ->상속 시 생성자는 항상 부모클래스 먼저 생성한다. keyword는 super()이다. 단, 부모클래스의 생성자가 존재하지 않는다면 하지 않아도 된다. 부모 클래스의 메소드를 사용하고 싶을 때에도 super. 하고 사용한다. ->상속 클래스에서 접근제어자에 따라 필드에 접근을 못할 수도 있다. 단, 데이터를 사용못한다는 거지 물려받지 않는다는 것이 아니다. 부모클래스의 protected 필드는 자식클래스에서..

# STATIC ## C에서의 static은 어떻게 사용되었나. 1. 특정 함수 내에서 프로그램 종료 시까지 데이터 값을 유지. -> 보통 함수 호출을 하면 stack에서 사용하고 종료되면 그 값이 사라지지만 static variable은 그 값이 유지된다. 2. 함수명 앞에 static을 붙이면 해당 파일 내에서 사용하는 함수라는 의미. -> 다른 소스파일에 같은 이름의 함수가 있어도 현재 파일 내의 static 함수를 사용하여 충돌을 방지해줌. ## Java에서의 static. static method, variable은 다음과 같은 의미를 갖는다. 해당 class 내에서 공통적으로 사용하는 변수, 메소드. 그래서 각각의 객체들을 생성하면 각각 메모리 공간을 사용하지만 static이 붙은 메소드와 변..
자바는 모든 것이 객체의 요소들이므로 method라고 부른다. c에서의 함수와 비슷하다. 우리가 함수를 왜 쓰는지를 생각해보면 좋을 것 같다. 1. 같은 동작을 여러번 할 때. 2. 코드의 가독성을 높이기 위해 + 이제부터 디버깅 포인트는 main의 끝으로 지정하고 하자. step over는 그냥 다음 라인을 실행하고 step into는 라인에 함수가 있다면 함수로 들어간다. step out을 하면 into에서 빠져나와 다음 line을 살펴보게 된다. -특징들.. 특징을 적기 앞서 한 가지 유의할 것이 있다. method내에서 외부 변수의 값을 바꾸는 것은 좋지 않다. 원본을 변화시키는 것은 좋은 코드가 아님을 유의하자. 값만 카피해서 사용하는 것이 좋다. 1. static main method밖에서 m..
for는 c언어랑 똑같음. 이 글을 쓴 이유는 for-each때문이다. 순회할 배열이나 collection에서 사용된다. 배열의 끝까지 알아서 돌아주기 때문에 종료조건을 따로 할 필요가 없어서 무지 편리하다. 진짜 자바는 최고다. 파이썬은 신이고. int sumOfArray = 0; for (int num : multiOf4) { sumOfArray += num; } 순회하는 동작이 필요해서 사용할 수 있으면 사용하는 것이 좋다. 만약 짝수번째 홀수번째 이런 건 그냥 기존 for문을 사용하면 된다.
c++의 템플릿처럼 자바에서도 타입을 명시하지 않은 var라는 자료형이 있다. 초기화를 해준 값을 보고 컴파일러가 자료형을 추론한다. // 변수만 선언하거나 null값으로 초기화하면 Error!! 상황에 따라 가독성이 좋을 수도 안 좋을 수도 있다. 지역변수에서만 사용 가능하고 배열에서는 초기화할때 타입을 알려줘야한다. var char[] = new char[13] {'a', 'b'}
-문자열 formatting. 13버전 이전 String.format(str, ...) 17버전 str.formatted(...) system.out.printf(str, ...) format의 방식은 여러가지가 있다. "%d", // 1. 기본 "%13d", // 2. n 자리수 확보, 오른쪽 정렬 "%013d", // 3. 빈 자리수 0으로 채움 "%+13d", // 4. 양수는 앞에 + 붙임 "%,13d", // 5. 쉼표 사용 "%-13d", // 6. 자리수 확보, 왼쪽 정렬 "%+,013d" // 7. 혼합. 각각은 float(%f), string(%s)에도 적용가능하다. 문자열 자료형은 원시 자료형이라 그 값이 변할 수 없다. 따라서 변화된 문자형을 원한다면 변화된 문자열을 만든 후 참조하면..
3-6 문자열 ! 객체의 변수는 메모리 공간을 가리킨다. literal 문자열은 heap의 string constant pool이라는 영역에 저장이 된다. String str1 = "hello"; String str2 = "hello"; 따라서 둘은 같은 메모리 공간을 가리킨다. 따라서 글자의 비교는 "hello".equals(str1) 과 같은 메소드를 사용하는 것이 좋다. -문자열을 이어붙이는 방법. + 연산자를 사용. (연산자 재정의) -해당 값을 문자열로 넣는 방법 값 + "" 또는 valueOf() 메소드 사용 -문자열을 값으로 변환 int a = Integer.parseInt("123") 같은 방식으로 사용. - \으로 특수문자 의미 지우기 3-7 문자열 상 -length() //갯수 -isE..
자바 지식기록. JVM, JDK, JRE 용어. java virtual machine 소스코드를 컴퓨터가 실행하기 위해선 기계어로 바꾸어주어야 한다. 이때 번역(컴파일)과 통력(interpreter)방식이 있다. 이것은 한번에 자국어로 번역해주느냐 실시간으로 통역해주느냐의 차이이다. 따라서 실행속도나 안정성에 차이가 있다. c/c++/자바는 compile해주는 언어에 속한다. 근데 이 번역본은 컴퓨터의 종류마다 번역의 차이가 발생한다. 따라서 c/c++은 윈도우에서 컴파일 한 것을 맥북에서 돌릴 수 없다. 반면에 자바는 JVM이 번역본을 읽고 각 컴퓨터에 알맞게 실행하게 된다. 즉, JVM은 현지에 파견된 주방장이다. JRE, Java Runtine Environment JRE는 주방장이 파견되어 일하는..