스트림(Stream) 스트림은 배열, 컬렉션, 파일 등 여러 데이터들을 다루는 자료형에서 데이터를 하나씩 참조하여 처리 가능한 기능을 말한다. 람다를 사용할 수 있는 기술이다. 반복문이나 iterator를 사용하지 않아도 된다. JDK 1.8부터 나왔다. 이를 통해 for문의 사용을 줄여서 코드를 간결하게 할 수 있다. 특징으로는 원본 데이터를 사용하지만 변경은 불가능하다. 일회용으로 사용하므로 처리 후 재사용이 불가능하다. 내부적으로 반복 및 병렬처리가 가능하다. 기본 데이터을 처리하기 위한 래퍼 스트림(Int,Double,LongStream)도 지원한다. Stream은 크게 Stream 생성, 중개연산, 최종연산의 3단계로 진행된다. 데이터소스객체.Stream생성().중개연산().최종연산(); 이런식..
람다표현식(lambda expression) 람다표현식은 일반적인 메소드 대신 하나의 식으로 표현하는 것이다. 즉, 즉석에서 사용할 임의의 메소드 하나를 만든다고 보면 된다. 익명함수(anonymous function)이라고도 한다. (매개변수...) -> {실행문;}; 이런식으로 만들어주면 된다. 예를 들어, x,y를 더하는 함수라고 하면 (int x, int y)->{return x+y;}; 이런느낌이다. 안팎으로 ;을 붙여줘야한다. 람다식의 장점 1. 코드가 간결해진다. 2. 코드 가독성이 높아진다. 3. 생산성이 높아진다.(멀티스레드를 활용한 병렬처리) 람다식의 단점 1. 코드 재사용이 불가능하다(익명) 2. 디버깅이 어렵다. 3. 재귀함수로는 맞지 않는다. 메소드같은 경우 디버깅용 코드를 작성하..
클래스(Class)와 객체(Object) Class는 객체를 정의하는 설계도, 틀이다.(보통 PascalCase로 만든다.) 객체는 그렇게 설계도(클래스)를 기반으로 만들어진 것들을 말한다. 클래스의 타입으로 선언되었을 때 객체라고 부르고, 그 객체가 메모리에 할당되어 실제 사용될 때 인스턴스(instance)라고 부른다. 클래스로부터 객체를 선언하는 것을 인스턴스화 한다고 하고, 어떤 객체를 어떤 클래스의 인스턴스라고 표현한다. 클래스명을 사용할 때는 클래스명을 자료형처럼 쓴다고 생각하면 된다. 클래스명 객체명(변수느낌, 식별자) = new 클래스명(); 이런느낌으로 쓴다. 여기에 접근제어자와 static이 붙어서 클래스가 만들어진다. ** this는 자기자신, this()는 생성자를 의미한다. ** ..
프로그램의 에러는 크게 컴파일 에러, 런타임 에러, 논리적 에러가 있다. 자바에서의 런타임 에러에서 오류(Error)는 로직 상에서 수습될 수 없는 심각한 오류를 말하고, 예외(Exception)는 로직 상에서 수습될 수 있는 미약한 오류를 말한다. 예외(Exception) 예외(Exception)는 정상적이지 않은 케이스를 의미한다. 컴파일 시에 검사가 가능한 Checked Exception(사용자들로부터 발생하는 예외), 불가능한 Unchecked Exception(개발자의 실수로부터 발생하는 예외, Nullpointer, Arithmetic )이 있다. 예를 들어, 0으로 나누거나 배열의 인덱스 초과, 없는 파일 열기 등이 있다. 예외처리(Exception Handling) 예외처리는 try-cat..
자주 사용할 것 같은 함수들을 모아볼 것이다. 많아지면 분류할 예정이다. 함수 뜻 System.out.println(); 출력함수, 기본적으로 line up, 엔터가 포함되어있다. 엔터를 넣고싶지 않을땐 print() 혹은 printf()(서식문자사용)사용가능하다. Integer.MIN_VALUE; int값이 출력가능한 최소값, 최대값(MAX_VALUE)도 가능하고 int가 아닌 자료형도 가능하다. int num = Integer.parseInt("123"); 문자열을 숫자로 바꿔주는 함수 String str = Integer.toString(12345); 숫자를 문자열로 바꿔주는 함수 Scanner sc = new Scanner(System.in) 콘솔(키보드) 입력받는 함수 sc.nextLine();..
자바를 공부하면서 배운 자잘한 정보들 및 잘 모를것 같은, 주의해야할 것들을 모은 곳이다. 자료형(Data type) 1. int 타입은 약 +-20억까지 표현할 수 있다.(그 이상이면 long) 2. float 타입은 float haha=0.23f;같이 뒤에 f를 붙여준다. 3. 변수를 초기화하지 않고 선언만 한 경우, 숫자는 0, 문자열은 null(""), boolean은 false, 문자는 '\0'(null 문자, ' ', '\u0000')가 된다. (다 의미는 같다. '\0', '\u0000'은 같지만 ' '과 둘은 서로 다르다고 나온다. 하지만 의미는 같다.) 4. byte, short형은 자동으로 int로 형변환되어 계산된다. 5. String 타입은 참조형이라 둘이 비교할 때, equals ..
디버깅은 프로그래밍 과정중에 발생하는 오류나 비정상적인 연산, 즉 버그를 찾고 수정하는 것이다. 중단점(break point) - 왼쪽의 붉은 동그라미가 있는 부분을 클릭하면 어느 줄에서나 저런 동그라미가 생기는데 이를 중단점이라고 한다. Run -> Debug를 클릭하면 디버깅이 시작되는데, 중단점에서 코드가 멈추게 된다. Debug를 누르면 아래 이런 창이 뜨는데, Debugger는 중단점까지 코드를 돌렸을때 사용되었던 자원들에 대한 정보들이 들어있다. (변수같은것들) Debugger 내부의 변수에 우클릭 후, set value로 다른 값으로 적용해볼 수도 있다. 디버깅을 실행하면 중단점에서 실행이 멈춰있는 상태인데, 주로 아래 4가지로 코드를 넘겨가면서 디버깅을 진행한다. 1. Step Over(F..
오늘부터 자바 공부를 시작하며 몰랐던 부분, 나중에 다시 봤을때 모를것 같은 부분을 기록할 예정이다. IntelliJ IDEA 개발환경을 사용하여 공부할 생각이며, 백엔드 개발자가 되기위해 자신을 열심히 갈고닦아볼 생각이다. 열심히 공부하는 모든 개발자분들 함께 열심히 해봐요~