728x90

자라는 재미들/코코아 10

String 의 불변성(immutable)

🍏스트링의 불변성 수업을 듣다가 String 이 immutable 객체라는 사실을 알게 되어 정리하고자 글을 쓴다. 시작하기 전에 모든 객체들은 힙(heap)에 저장된다. 이부분을 한번더 되새기고 지나간다. 문자열 객체인 String 은 한번 생성되면 절대로 그 값이 변하지 않는다. 여기서 의문이 들었다. 어? 잘나오는데? String apple = "green"; System.out.println(apple); apple = "red"; System.out.println(apple); 결과 green red 사실 내부적으로는 최초에 생성된 String 객체의 값이 변경되는 것이 아닌 새로운 객체가 생성되며 변수 apple 이 그 새로운 객체를 참조하게 되는 것이다. 기존의 "green" 과 "red" ..

자바 메모리 구조

자바 메모리 구조 알아보기 *Q. *메모리 구조를 알아봐야하는 이유? *A. *한정된 자원에서 최고의 성능을 낼 수 있도록! 같은 기능의 프로그램이더라도 메모리 관리에 따라 성능이 좌우된다. java프로그램은 JVM이라는 프로그램에 종속적이기때문에 os에서는 독립되어서 다양한 os 에서 사용가능하다. 대신 JVM을 실행시키고 JVM으로 프로그램을 실행시키다보니 OS에 직접 제어받는 방식보다 속도면에서 느리다. jvm이란? 자바가상머신 자바와 운영체제 사이의 중계자 역할 자바가 운영체제에 종속되지 않게 해줌 메모리 관리 기능(Garbage Collection) JVM(java.exe)은 무엇을 하는가? 메모리를 할당한다 바이트코드를 운영체제에 맞추어 번역,실행한다. JVM메모리 구조 자바 소스 파일은 자바..

Call by Value , Call by reference

실제 자바는 Call by Value 뿐이다. Call by Value 는 값을 넘기는 것 Call by Reference 는 주소를 넘기는 것 이다 swap 으로 알아보기 예시 1 Call by Value 같은 이유 : main 에서 만든 변수 a,b 의 주소가 각각 x, y 라고 했을때 swap() 로 넘겨져서 메서드가 수행되는 동안 사용되는 변수들은 swap() 내부에 새로생긴 a,b 이기 때문에 기존 x,y 의 주소와 다르다. 때문에 다른 주소에서 swap를 해봤자. 기존에 main의 a,b 값은 그대로다. 예시 2 Call by reference 바뀐 이유 : 메인에서 선언된 CallTest 타입의 변수 a,b 는 각각 객체를 생성하여 x,y 주소에 저장된 1,2 의 주소값을 저장하게 된다. 이..

public static void main(String[] args) 헬로월드!

public static void main(String[] args) 알아보기 ​ 접근제어자 static return type String[] args main ​ 접근제어자 ​ 접근 제어자의 접근 범위가 보다 많은 제어자부터 적은 제어자 순으로 나열한 결과 ​ public > protected > default > private ​ 객체 지향에서 정보은닉이란 사용자가 굳이 알 필요가 없는 정보는 사용자로부터 숨겨야 한다는 개념이다. 사용자는 최소한의 정보만으로 프로그램을 손쉽게 사용할수 있게 되고, 자바는 이러한 정보 은닉을 위해 접근 제어자(access modifier)라는 기능을 제공하고 있다. **_🖤public_** 선언된 클래스 멤버는 해당객체를 사용하는 프로그램 어디에서나 접근할 수 있다. ..

BufferedReader

BufferedReader 간편하다는 이유로 스캐너만 써왔지만 BufferedReader() 를 써보려고한다. BufferedReader 는 버퍼를 이용해서 읽도록 구현된 클래스 이다. 데이터를 읽을때마다 I/O에 접근하지않고 buffer에 저장해둔것을 읽기 때문에 성능이 좋다. 선언방법 및 사용법 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStrea..

w1 - day2 - Call by Value , Call by reference

Call by Value, Call by Reference 자바는 primitive의 경우 call by value, 객체의 경우는 call by reference 실제 자바는 Call by Value 뿐이다. Call by Value 는 값을 넘기는 것 Call by Reference 는 주소를 넘기는 것 이다 swap 으로 알아보기 예시 1 Call by Value 스왑전후의 결과가 같다. 같은 이유 : main 에서 만든 변수 a,b 의 주소가 각각 x, y 라고 했을때 swap() 로 넘겨져서 메서드가 수행되는 동안 사용되는 변수들은 swap() 내부에 새로생긴 a,b 이기 때문에 기존 x,y 의 주소와 다르다. 때문에 다른 주소에서 swap를 해봤자. 기존에 main의 a,b 값은 그대로다. 예..

w1 - day2 - public static void main(String[] args) 헬로월드!

헬로월드 public static void main(String[] args) 알아보기 접근제어자 static return type String[] args main 💛 접근제어자 접근 제어자의 접근 범위가 보다 많은 제어자부터 적은 제어자 순으로 나열한 결과 public > protected > default > private 객체 지향에서 정보은닉이란 사용자가 굳이 알 필요가 없는 정보는 사용자로부터 숨겨야 한다는 개념이다. 사용자는 최소한의 정보만으로 프로그램을 손쉽게 사용할수 있게 되고, 자바는 이러한 정보 은닉을 위해 접근 제어자(access modifier)라는 기능을 제공하고 있다. 🖤public 선언된 클래스 멤버는 해당객체를 사용하는 프로그램 어디에서나 접근할 수 있다. 접근에 제한이 없..

w1 - day2 - BufferedReader

BufferedReader 간편하다는 이유로 스캐너만 써왔지만 BufferedReader() 를 써보려고한다. BufferedReader 는 버퍼를 이용해서 읽도록 구현된 클래스 이다. 데이터를 읽을때마다 I/O에 접근하지않고 buffer에 저장해둔것을 읽기 때문에 성능이 좋다. 선언방법 및 사용법 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStrea..

W1 - day2

오늘은 두번째 날~ 성실하게 해보자 ~ 배운거 실제개발코딩할때는 else elseif안쓰는게 좋다. 가독성이 떨어지기때문 코테에서는 가독성필요없음 풀어야함 금요일은 알고리즘과 부족했던거 진행하는시간 꼭 해야하는건없지만 규칙은 지키며 성장하기 함수는 기능을 분배하기 위해서 사용한다. 함수를 나누면 생각도 같이 나눠서 정리할 수 있다. 오늘 할일 마크다운 문법 깃에 올릴때 커밋 메세지 달아보기 for문 정리 Hello World 에 대해 알아보기 public class Make{ public static void main(String[] args){ System.out.println("Hello World"); } } 오늘의 미션 BufferedReader() 공부 Call by Value , Call by..

w1 - day1

오늘 한일 인텔리제이 커뮤니티 모드 설치해서 깃이랑 연동해놨다. 한달만의 깃과 거의 1년만의 자바에 당혹스러웠다. 반복분, 제어문, 구구단, 별찍기 등을 햇다. 화이팅! 참고링크 https://blog.naver.com/winter6120/221000738717 환경변수 설치하는이유 보기! 아쉬운점 자바의 기본개념들을 많이 까먹었다. private public등을 공부하자. 뭘했는지 기억할 수 있게 기록해놓기

728x90