일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 언박싱
- 제너릭
- 루프
- 싱글톤
- 내장객체
- https://start.spring.io
- 메소드
- boxing
- unboxing
- 자동형변환
- wrapper
- Java
- Jenkins
- start.spring.io
- bootstrap
- maven
- Short
- dependency
- 박싱
- 클래스
- 컬렉션
- 콜렉션
- 싱글턴
- 빌드
- 제네릭
- suvlet
- Scanner
- 인텔리제이
- 무한
- 스프링
- Today
- Total
목록K-DigitalTraining 강의/1. Java (102)
Developer Gonie
* 클래스 내에서 멤버함수를 정의할 때, 앞의 'static'은 필요에 따라 있어도 되고, 없어도 되는데, 'static'을 붙이면 static변수(=클래스변수)와 동일하게 객체를 생성하기 전부터 메모리에 올라가 바로 클래스명으로 함수를 호출하는게 가능하다. 반대로, 만약 함수 정의시 'static'을 붙이지 않았다면 객체를 생성 후 객체를 통해 함수를 호출해야한다. * 위 원리로 컴파일될 때 객체를 만들지 않아도 main 함수가 호출될 수 있도록 static이 붙는 것임. * mian 함수 같은 "static 메서드는 static 메서드만 (바로) 호출할 수 있다." static이 아닌 메서드를 호출하고자 한다면 객체를 생성 후 호출해야 한다. Q. 첫번째 문제, 아래에서 뭐가 문제인지 찾고 올바른 수..
아래 예시는 이전 예시와 다르게 main함수가 포함된 클래스 내에서 멤버함수를 정의해서 사용하는게 아닌 그 밖의 클래스에서 멤버함수를 정의해서 사용하는 예시임. 코드 class Calculator { static int add(int x, int y) { return x + y; } static int sub(int x, int y) { return x - y; } int mul(int x, int y) { return x * y; } } public class Ex05_04_메서드 { public static void main(String[] args) { // main 메서드 정의 System.out.println("덧셈결과"+ Calculator.add(10, 20)); System.out.prin..
* 리턴타입이란? 함수작성할 때 함수명 왼쪽에 넣어주는 void, int, 등 * 매개변수(=파라미터) 함수 호출시 넘겨받은 인자를 담는 변수를 매개변수라고 함 * (전달)인자(=Argument) 함수 호출할때 넘겨주는 숫자 등 코드 public class Ex05_03_메서드 { public static void main(String[] args) { // main 메서드 정의 // static이 붙은 메서드는 바로 호출 가능 show(); add(3, 4); System.out.println("세 수의 뺄셈:" + sub(100, 11, 22)); // static이 붙지 않은 메서드는 객체를 생성후 호출가능 Ex05_03_메서드 e = new Ex05_03_메서드(); System.out.print..
* 아래의 두 변수들은 초기화 해주지 않아도 자동으로 0으로 초기화 되지만(boolean형 변수는 false로) 일반 지역변수의 경우는 자동으로 초기화 되지 않으므로, 초기화 해준 뒤에 사용해야 한다. * 멤버변수 = 인스턴스변수 '멤버변수'란 클래스 내부의 변수들인데, 인스턴스를 만들어야 변수에 대한 공간이 할당되므로 '인스턴스 변수'라고 부르기도 함. * static변수 = 클래스변수 객체를 생성하기 전부터 생성되어, 같은 클래스로 생성된 모든 객체가 공유하게 되는 변수인데, 클래스 이름으로 접근하는게 일반적이라서 '클래스변수'라고 부르기도 한다. 객체를 통해서도 접근해도 실행은 되지만 이 변수는 하나의 객체에 한정되어 존재하는게 아니기 때문에 경고 메세지가 뜰 것임. 코드 class Person {..
* 클래스란? 8가지의 기본자료형이 아닌 사용자 정의 자료형이다. * 멤버변수란? 클래스 내부에 있는 변수 * 객체란? 참조변수를 생성후 new를 통해 별도의 메모리 생성 과정을 거쳐 만들어진 것. class Person{ String name; int age; double height; } public class Ex05_01_클래스 { public static void main(String[] args) { Person p1; // 참조변수 생성 p1 = new Person(); // 참조변수를 생성하는 것 만으로는 데이터를 담을 수 있는 공간이 안생기는데 // new를 해주면 name, age, height를 담을 수 있는 공간이 생김 // 그리고 참조변수 p1은 이 공간의 시작주소를 가리키게 됨 ..
* 아래의 코드는 1차원 배열을 선택정렬을 이용하여 정렬한 것 [0]-[1],[2],[3],[4] 매번 비교해서 더 작은수를 찾을 때 마다 0번 자리랑 바꿈 [1]-[2],[3],[4] 매번 비교해서 더 작은수를 찾을 때 마다 1번 자리랑 바꿈 [2]-[3],[4] 매번 비교해서 더 작은수를 찾을 때 마다 2번 자리랑 바꿈 [3]-[4] 매번 비교해서 더 작은수를 찾을 때 마다 3번 자리랑 바꿈 코드 public class Ex04_07_정렬 { public static void main(String[] args) { int[] arr = {8, 3, 5, 2, 9}; for(int i = 0; i
코드 public class Ex04_05_2차원 { public static void main(String[] args) { int[][] arr = { { 80, 72, 63, 83 }, { 92, 21 }, { 99, 49, 59, 92 } }; System.out.println(arr.length); System.out.println(arr[0].length); for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr[i].length; j++) { System.out.print(arr[i][j] + " "); } System.out.println(); } System.out.println(); // 확장 for문을 이용한 배열원소 전체출력 ..
코드 public class Ex04_05_2차원 { public static void main(String[] args) { // 첫번쨰 방법 : 열의 개수 4개, 2개, 4개 이런식으로 달라도 되는게 특징 int[][] arr = { { 80, 72, 63, 83 }, { 92, 21 }, { 99, 49, 59, 92 } }; // 두번쨰 방법 : 열의 개수 4개, 2개, 4개 이런식으로 달라도 되는게 특징 int[][] arr2 = new int[][] { { 80, 72, 63, 83 }, { 92, 21 }, { 99, 49, 59, 92 } }; // 세번쨰 방법 : 열의 개수가 4개, 4개, 4개 모두 같게 형성되는게 특징. int[][] arr3 = new int[3][4]; // {{0..
확장 for문 확장 for문은 index가 있는 타입일 땐 항상 사용이 가능하며, 일반 for문과 다르게 index가 없는 경우에도 원소를 하나씩 꺼내어 출력할 수 있다는 장점이 있다. index가 존재하는 배열이나 List 인터페이스를 상속받은 ArrayList 는 index가 있어 일반 for 문으로도 모든 원소에 접근이 가능하다. 반면, index가 없는 Set 인터페이스를 상속받은 HashSet 같은 경우엔 인덱스로 원소에 접근이 불가한데, 여기서 확장 for문이 빛을 보인다. 확장 for문은 index의 존재 여부에 상관없이 요소를 하나씩 꺼내서 처리할 수 있기에 특히 index가 없는 타입을 처리할 때 유용한 방식이다. public class Ex04_01_1차원 { public static ..
* 배열변수는 참조변수라고 명명함. 배열변수를 출력하면 배열의 시작주소가 출력된다. (=참조변수에 참조값이 들어가있다고 얘기한다.) 배열변수에는 배열의 시작주소(=참조값)가 들어있기 때문이다. 이 원리로 index로 배열 접근이 가능한 것이다. int형 배열이면 4byte를 건너뛰면 다음 원소가 있겠구나(연속된 메모리 공간을 가짐) 이런식으로 접근됨. * 같은 타입의 데이터만 배열로 묶어서 사용할 수 있는게 기본이지만 double 형 배열의 경우 이것보다 크기가 작은 int형 데이타는 들어올 수 있어서 다음과 같이 선언 가능. double [] b = {1.1, 2, 3.3} 단, 실수형의 공간에 정수를 넣은 것이기 때문에 자동적으로 double(실수형)으로 형변환이 이뤄진다. * 배열변수 선언시 []는..
1. Toggle Breakpoint 지정 2. 오른쪽마우스 -> Debug As * System.out.println() 에서 F5를 누르면 함수 내부로 들어가기 때문에 평소엔 F6를 이용하자. F5 : Step Into F6 : Step Over
반복문에서 break 코드 - break는 반복문을 빠져나간다. - 이중으로 감싸진 for문 안쪽에서 break를 만나면 안쪽의 for 문에서의 작업을 멈추고 바깥 for문을 계속한다. public class Ex03_13_break_continue { public static void main(String[] args) { //1~10 출력 for(int i = 1; i