일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
- vue-cli
- vue3
- Baekjoon
- getOrDefault
- Spring Security
- 2178
- 대충 만든 자판
- 스웨거
- springboot
- 병합정렬
- call by value
- springdoc
- 6236
- 추억점수
- IoC container
- 헤이로라
- swagger3
- 프로그래머스
- 자바
- 크레인인형뽑기게임
- docker
- 수들의 합
- 용돈관리
- Di
- Spring
- 1032
- jvm
- 백준
- 2751
- java
- Today
- Total
목록자바 (19)
개발쿠키
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/0ZeEq/btsnC7WuxOG/1wMzmmmD1VKLPkBzmHSpMk/img.png)
프로그래밍에서 메소드 매개변수 호출 방식에는 call by reference와 call by value 두가지 방식이 있다. 아마 많은 개발자 분들은 취준 시절에 면접 단골 질문이라고 많이 공부들 하셨을 것이다. 물론 나도 해당 내용에 대하여 찾아보았지만 단순히 대답을 위해서 이해는 제대로 못하고 암기식으로 외웠던 기억이 있다. 하지만 이제는 말할 수 있다!...그럼 본론으로 들어가기 전에 간단히 두가지 방식이 무엇을 의미하는지 알아보자. call by reference - 직역을 하자면 참조에 의한 호출이다. call by value - 값에 의한 호출. 저렇게 적어놓으면 뭔가 더 없나 하겠지만 정말 저게 전부다. 우선 자바에서 저 두개를 이해하기 전에 JVM을 알고 있다면 훠어얼씬 이해하기 쉽다. 만..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bL1q6F/btsmFgm8aYV/yuPiaRtJcIzpHIUCfgkKv0/img.png)
JVM과 자바 어플리케이션 JVM은 자바 프로그램을 실행하기 위한 소프트웨어이다. 다시 말해 결국 JVM도 일종의 프로그램이다. 그렇기 때문에 자바 어플리케이션을 실행 시키면 우선 JVM이 OS로부터 메모리를 할당을 받는다. 이후 .java 파일의 소스 코드를 컴파일 하여 나오는 바이트 코드를 해석하고 실행하는 역할을 한다. public class Main { public static void main(String[] args) { Audio audio = new Audio(); } } class Audio { final static String color = "WHITE"; int volume; void volumeUp() { this.volume += 1; } void volumeDown() { th..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/WcXrd/btsmlUxchs8/d5MKhatZ1njBkDvb9DIY40/img.png)
1.시작하기 전 동일성과 동등성 동일성은 비교하는 두 객체가 완전히 같은 것을 의미한다. 다시 말해 두 객체는 하나의 객체로 봐도 무방하다라는 뜻이며 해당 두 객체의 주소값은 같은 주소값을 가리킨다. 동등성은 두 객체가 가지고 있는 값은 같지만 서로 다른 객체라는 것을 의미한다. 쉽게 말하면 주소값은 다르지만 두 객체가 가지고 있는 값은 같다라고 볼 수 있다. 자바에서는 동일성을 확인하기 위해서는 == 을 사용하고 동등성을 확인하기 위해서는 equals 메소드를 사용한다. equals 메소드는 모든 객체들의 부모 객체인 Object 객체에서 구현하고 있으며 해당 메소드의 구현을 보면 == 을 사용하여 결과를 return 한다. 따라서 해당 메소드를 오버라이딩 하여 재정의 하지 않고 쓴다면 결국 동일성을 ..
JVM(Java Virtual Machine) JVM은 일종의 프로그램이다. 우선 JAVA와 C와 같은 언어들은 컴퓨터가 알아들을 수 있도록 소스 코드를 컴파일 하여 기계여로 변환하는 과정을 거친다. 하지만 c나 c++ 등의 언어들은 각 OS에 맞는 컴파일러가 없다면 윈도우에서 개발한 프로그램이 다른 OS에서는 동작하지 않는다. 하지만 JAVA는 "Write once, Run anywhere"라는 모토를 가지고 있다. 말 그대로 한 번 작성되면 다른 운영체제에서도 동일하게 실행 될 수 있다는 의미이다. 이를 가능하게 하는 것이 JVM이다. 각 OS 별로 JVM이라는 통역사를 둔다고 생각하면 이해하기 편하다. JAVA는 컴파일러((javac)가 컴파일시에 작성된 코드(.java 파일)를 바로 기계어로 변환..
https://school.programmers.co.kr/learn/courses/30/lessons/42587 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 대략 35분 정도 걸린거 같다^^... public int solution(int[] priorities, int location) { int answer = 0; //우선순위 큐 Queue prio = new LinkedList(); //위치 즉 location 큐 Queue idx = new LinkedList(); //우선순위 큐는 그대로 넣고, location은 순서대로 초기화 for (i..
https://school.programmers.co.kr/learn/courses/30/lessons/64061 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 스택을 활용한 문제이다. 참고로 다른 사람의 풀이 중에서는 List를 이용해서 푸신 분들도 있다. public static int solution(int[][] board, int[] moves) { int answer = 0; Stack bucket = new Stack(); //peek 시에 최초에는 아무것도 없기 때문에 0을 넣어줌 bucket.push(0); for (int move : m..