일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 링킹
- AutoConfiguration
- JPA
- 토비의스프링
- ApplicationContext
- Kotlin for Java Developers
- gradle
- 빌드툴
- springwebmvc
- IOC
- 토비의스프링3.1
- 컴퓨터시스템
- 링커
- 클린코드
- Spring
- DesignPattern
- 프록시
- hibernate
- String
- beanfactory
- java
- Immutable
- DispatcherServlet
- FunctionalInterfaces
- exception
- 자바
- lambda
- springboot
- 메이븐
- ORM
- Today
- Total
목록java (16)
엔지니어로 가는 길
출처: https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html 중첩 클래스란 Java에서는 클래스 안에 클래스를 정의할 수 있다. 클래스 안에 정의된 클래스를 nested class(중첩 클래스) 라고 한다. 중첩 클래스는 바깥 클래스의 ‘멤버’이므로 private, protected, public, package-private 모두 가 능하다. (top-level 클래스는 오직 public과 package-private만 가능하다.) 중첩 클래스는 static과 non-static 으로 나눌 수 있는데, static인 경우 static nested class라고 부르고 non-static인 경우 inner class라 부른다. Non-stati..
Java의 접근 제어자는 아래와 같다. private: 클래스 내부에서만 접근 가능 default(package-private): 클래스 내부와 패키지 내의 다른 클래스에서 접근 가능 protected: default에 더해 다른 패키지라도 자식 클래스일 경우 접근 가능 public: 외계에서도 접근 가능 클래스 접근제어자 클래스에는 접근제어자 package-private와 public만 가능하다. (내부 클래스(nested class)의 경우 다른 접근 제어자를 쓸 수 있는데 이는 다음에 살펴보도록 한다.) 패키지 외부에서는 package-private 클래스가 보이지 않는다. 따라서 상속받을 수도 없고, 객체를 생성할 수도 없다. package-private 클래스가 자식 클래스에서도 접근이 안된다고..
논리 연산자 &, |와 &&, ||는 뭐가 다를까? 먼저 결과만 보자면 둘 모두 같은 결과를 낸다. &와 && 모두 모든 조건이 참일 때 참이고, |와 || 모두 하나의 조건만 참이면 참이다. 하지만 &와 |는 &&, ||와 달리 이미 조건식의 결과가 결정이 났다고 해도 모든 조건을 끝까지 검사한다. &와 |에서만 y의 값이 증가된 것을 확인할 수 있다.
https://www.youtube.com/watch?v=ESwVlixFtak primitive 타입이 아니라 사용자 정의 객체인 경우 어떤 객체가 더 큰지 사용자가 기준을 명시해주어야 한다. Java에서는 이를 위해 Comparable이라는 interface를 지원한다. 즉, 사용자 객체가 Comparable interface를 구현하고 있으면 그 객체는 마치 primitive 타입처럼 비교 기준이 세워져있음을 뜻하므로 Java API가 제공하는 정렬 기능을 사용할 수 있다. 예를 들어 Fruit이라는 객체가 이름과 재고라는 두 가지 필드를 가지고 있고, Comparable을 구현하여 compareTo를 이름이 더 빠른 것이 더 크다고 재정의했다면 Fruit 배열이 있을 때 Arrays.sort에 Fr..
Enum의 정의 Enum(enumerated type): 열거형, 서로 연관된 '상수'들의 집합 상수 상수란 변하지 않는 수를 뜻한다. Enum도 클래스 변수와 메소드, 생성자를 가질 수 있다. 위의 코드는 아래의 코드와 같은 역할을 한다. 즉, Fruit에서 단순히 APPLE, PEACH, BANANA라고 나열했을 뿐인데 이름이 각각 APPLE, PEACH, BANANA인 Fruit 타입의 객체(instance)가 생성되는 것이다. Enum은 서로 연관된 '상수'들의 집합이라고 했는데 웬 객체인가? 객체들을 보면 final이라는 키워드가 붙어 있다. 즉, 초기화 된 이후에 변경이 불가능하다는 뜻이다. 따라서 이들은 앞으로 변하지 않음으로 상수라고 할 수 있다. Enum의 특징 Enum의 생성자는 반드시..
TCP 방식으로 데이터를 주고받게 하기 위해 아래와 같이 Server 클래스와 Client 클래스를 만들었다. Server class ServerSocekt Socket BufferedReader PrintWriter Client class Socket BufferedReader PrintWriter 한 쪽에서 다른 한 쪽으로 PrintWriter의 println 메소드를 통해 문자열을 보냈는데 이상하게 제대로 전달이 이루어지지 않았다. 문제는 둘 중 하나다. PrintWriter의 println에 문제가 있거나, BufferedReader의 readLine에 문제가 있거나. PrintWirter의 println을 무한반복으로 시도해보았는데 이때는 정상적으로 전달받았다. 따라서 BufferedReader..