목록Programming/Java (24)
헬린코린이
람다식이란 함수를 하나의 식으로 표현한 것입니다. 함수를 람다식으로 표현하면 메소드의 이름이 필요 없기 때문에, 람다식은 익명함수의 한 종류라고 볼 수 있다. 람다식이 등장하게 된 이유는 불필요한 코드를 줄이고, 가독성을 높이기 위함입니다. 함수의 인터페이스의 인스턴스를 생성하여 함수를 변수처럼 선언하는 람다식에서는 메소드의 이름이 불필요하다고 여겨져서 이를 사용하지 않습니다. 특징으로는 - 람다식 내에서 사용되는 지역변수는 final이 붙지 않아도 상수로 간주되고 - 람다식으로 선언된 변수명은 다른 변수명과 중복될 수 없습니다. 장점으로는 - 코드를 간결하게 만들 수 있다. - 식에 개발자의 의도가 명확히 드러나 가독성이 높아진다. 단점으로는 - 람다를 사용하면서 만든 무명함수는 재사용이 불가능합니다...
숫자 알파벳 기능 키 방향키 0 = 48 A = 65 N = 78 a = 97 n = 110 Backspace = 8 왼쪽 = 37 1 = 49 B = 66 O = 79 b = 98 o = 111 Tab = 9 위쪽 = 38 2 = 50 C = 67 P = 80 c = 99 p = 112 Enter = [CR=13,LF=10] 오른쪽 = 39 3 = 51 D = 68 Q = 81 d = 100 q = 113 Shift = 16 아래쪽 = 40 4 = 52 E = 69 R = 82 e = 101 r = 114 Ctrl = 17 5 = 53 F = 70 S = 83 f = 102 s = 115 Alt = 18 6 = 54 G = 71 T = 84 g = 103 t = 116 ESC = 27 7 = 55 H ..
MVC에 대해 간단히 알아보겠다. M은 Model이다 DB(DBMS:MySQL, Oracle)와 연동되는 부분이고 "재고 데이터" JAVA 코드 외적으로 저장된 데이터들을 (DBMS에 저장된 데이터들을) JAVA 코드 내부로 연동해 가져오는 역할이다. 쉽게 말해 데이터베이스의 역할을 가지고 있다고 생각하면 된다. V는 View로 사용자 공간(Console, 브라우저,클라이언트,사용자,…)을 말하고 사용자의 편의성을 고려하고 서비스를 제공하는 “대상”을 고려해야하는 파트이다 ex) 폰, PC,… : 프론트엔드를 말하고 화면 구성(UI/UX) 사용자 입력값에 대한 유효성 검사를 하는 곳이다. 쉽게 말해 우리가 보는 화면이다. C는 Controller로 MㅡV 연결하는 로직이다 디렉트로 연결할 수 없으며 반드..
자바의 스트림 클래스에는 바이트 기반 스트림과 문자 기반 스트림으로 나눌 수 있다. 또 입력 스트림과 출력 스트림으로 나뉜다. 바이트 기반 스트림의 클래스로는 - InputStream : 입력 - OutputStream : 출력이 있습니다. 문자 기반 스트림의 클래스는 - Reader : 입력 - Writer : 출력이 있습니다. 두 스트림의 기능은 똑같지만 차이점은 바이트는 1바이트씩 읽어오고, 출력하고 문자는 2바이트씩 읽어오고 출력합니다. 우선 바이트 기반 입력스트림의 하위 클래스로는 - FileInputStream - BufferedInputStream - DataInputStream 출력 스트림 하위 클래스로는 - FileOutStream - PrintStream - BufferedInputSt..
스레드란 프로세스(process) 내에서 실제로 작업을 수행하는 주체를 의미합니다. 모든 프로세스에는 한 개 이상의 스레드가 존재하여 작업을 수행합니다. 또한, 두 개 이상의 스레드를 가지는 프로세스를 멀티스레드 프로세스(multi-threaded process)라고 합니다. 프로세스(process)란 단순히 실행 중인 프로그램(program)이라고 할 수 있습니다. 쉽게 말해 프로세스를 공장이라고 생각하고 스레드를 일꾼이라고 생각하면 된다. 공장 하나에 일꾼은 많이 존재할 수 있다. 그렇게 생각하면 이해하기 쉽다. 스레드를 생성하는 방법에는 2가지가 있다. 1. Runnable 인터페이스를 구현하는 방법과 2. Thread 클래스를 상속받는 방법이 있다. 두 방법모두 run()을 오버 라이딩하면 된다...

예외를 알아보겠다. 예외 Exception은 컴파일할 때에는 문제가 없었는데 실행시켜보니 문제가 발생하는 상황을 말한다. 예외가 발생하면 프로그램은 즉시 종료된다. 예외를 처리하는 문법은 try-catch문을 사용하면 된다. 예제를 보겠다. public class Test01 { public static void main(String[] args) { int a = 10; int b = 0; // 컴파잃할떄에는, 정수가 저장되어있기때문에 올바르다고 판다. // 실행시켜봅면, b에 0이 저장되어 나누기 불가능!!! try { // 예외가 발생되면 즉시 catch문으로 이동함 System.out.println("로그 A"); System.out.println(a/b); System.out.println("로..
컬렉션 프레임워크에 이야기하겠다. 최상위 클래스에는 Collection클래스가 존재하고 Collection클래스 자식 클래스로는 List Set 클래스가 있고 Map클래스는 외톨이이다. List는 순서가 있는 데이터의 집합으로, 데이터의 중복을 허용하고 Set는 순서가 없는 데이터의 집합으로, 데이터의 중복을 허용하지 않고 Map은 키와 값의 한 쌍으로 이루어지는 데이터의 집합으로, 순서가 없고. 이때 키는 중복을 허용하지 않지만, 값은 중복될 수 있습니다. List를 구현하는 클래스는 Vector, ArrayList, LinkedList, Stack, Queue가 있다. 가장 많이 사용하는 ArrayList를 알아보겠다. ArrayList는 배열을 다루는 클래스인데 일반 우리가 사용하는 배열보다 더 간..
인터페이스는 추상 클래스와 비슷한 개념을 가지고 있다. 다른 점은 인터페이스에는 추상 메서드만 정의 가능하다는 것이다. 그리고 상수만 작성 가능하다. 일단 코드를 보겠다. public interface Phone { public static final int MAX=100; // public: 공개범위 오픈 // static: "객체와 무관하게" // final: "상수화" int MIN=0; public abstract void powerOn(); void powerOff(); void soundUp(); void soundDown(); } 근데 의문이 들 것이다. 추상 메서드는 abstract를 붙여줘야 하는데 붙여주지 않았다. int타입 앞에 키워드들도 붙여주지 않아도 자바에서 자동으로 제공해준다...
추상 클래스에 대해 알아보겠다. 추상 클래스란 쉽게 말해 추상 메서드를 가지고 있는 클래스이다. abstract 키워드로 선언된 불완전한 클래스를 말하고. 추상 클래스는 인스턴스화 할 수는 없으나, 추상 클래스를 상속받는 자식 클래스의 인스턴스화는 가능합니다. 추상 클래스를 선언하는 방법은 다음과 같습니다. abstract class A{ }; 일반적인 클래스 앞에 abstract키워드만 붙여주면 된다 이로써 이 클래스는 추상 클래스가 되었다. 추상 메서드도 마찬가지로 abstract 키워드로 선언된 메서드를 말합니다. 추상 메서드는 {}가 없습니다. 코드를 보겠습니다. abstract class A{ abstract void hello(); } class B extends A{ } 이 클래스를 상속한 ..
접근 제어자에 알아보겠다. 제어자란 클래스와 클래스 멤버의 선언 시 사용하여 부가적인 의미를 부여하는 키워드를 의미합니다. 자바에서 제어자는 접근 제어자와 기타 제어자로 구분할 수 있습니다. 기타 제어자는 여러 개를 함께 사용할 수 있지만 접근 제어자는 두 개 이상 사용할 수 없습니다. 자바에서는 4가지의 접근 제어자를 제공합니다. 1. public 2. protected 3. default 4. private 간단하게 설명하겠습니다. public은 어디에서도 접근이 가능한 제어자이다. protected는 패키지간의 접근이 불가능하지만 자식 클래스는 접근이 가능하다. default의 접근 제어를 가지는 멤버는 같은 클래스의 멤버와 같은 패키지에 속하는 멤버에서만 접근할 수 있습니다. default는 작성..