분류 전체보기 36

[Java] Lazy Evaluation

Lazy Evaluation이란? Lazy Evaluation은 직역하면 "게으른 연산"이다. java에서의 Lazy Evaluationd은 불필요한 연산들을 피하기위해 연산을 지연시키는 것을 말한다. 불필요한 연산을 피한다라는 것의 이해를 돕기 위해 예시를 들어보자면, public class Lazy { public static void main(String[] args) { ArrayList list = new ArrayList(); for (int i = 0; i i i%2==0) .map(i -> i*10) .collect(Collectors.toList()) ); ..

Java 공부 2023.02.12

2023.02.03 - java 8 의 optional은 무조건 사용하는게 좋을까??

Optional이란 java 8 에서 처음 나온 기능으로 Null 값을 가질 가능성이 있는 객체를 감싸는 Wrapper 클래스 이다. Null을 직접 다룰 경우에는 위험성이 커 Optional 객체를 사용하면 더욱 효과적인 처리가 가능하며, 코드가 Null-Safe 해지고 가독성이 좋아지며, 코드가 안정적이 된다. 먼저 Null이 될 수 있는 객체를 직접 다룰 시에 발생할 수 있는 문제점이다. public String priceFormCar(Car car) { return car.getOwner().getPhoneNumber(); } 위와 같이 자동차(Car) 객체의 주인(owner)의 휴대폰 번호 (phoneNumber)를 가져오는 메소드가 있다고 할 때, 만약 Car car가 null값으로 들어올 경..

백엔드 멘토링 2023.02.03

2023.02.01 - Java 8의 특징

먼저 자바의 버전에 대해서 말하자면 Java는 6개월에 새로운 버전을 출시하며, 3년 마다 LTS 버전을 출시한다는 정책을 가지고 있다. 여기서 LTS란 Long Term Support의 약자로 유지보수를 지원하는 버전이다. 쉽게 말해 자바의 새로운 버전이 6개월 마다 나온다고 하더라도 LTS 버전은 여전히 지원이 된다는 얘기이다 현재까지 출시된 LTS 버전들은 다음과 같다. 2014년 java 8 2017년 java 11 2021년 java 17 javaSE9 이후로는 2년 마다 LTS 버전을 출시하기로 했다. 2014년에 나왔음에도 불구하고 현재까지도 java 8을 사용하는 업계들이 많기에 java 8 의 특징을 알아놓는 것은 매우 유용하다. java 8 의 특징 Lambda (람다) 표현식 java..

백엔드 멘토링 2023.02.02

[JAVA] Char to Integer : 문자를 정수로 변환하기

Char 형을 Int형으로 바꾸어주기 위해서는 대표적으로 2가지 방법이 있다 아스키 코드를 이용한 변환 자바 라이브러리 안의 Character.getNumericValue() 메소드 사용 나는 두가지 방법중 java 라이브러리 안의 Character.getNumericValue() 메소드 사용을 선호한다. 아스키 코드 (ASKII code)를 사용할 경우보다 코드가 더 깔끔하기 때문이다. Character.getNumericValue() 예시 char c = '1'; int n = Character.getNumericValue(c); System.out.println(n); // 결과: 1

Java 공부 2023.01.25

[Programmers] 정수 내림차순으로 배치하기

매개변수로 받은 정수를 내림차순으로 정렬하여 다시 출력하는 프로그램 import java.util.*; class Solution { public long solution(long n) { long answer = 0; String result = null; //정렬된 배열을 다시 받아줄 String String number = Long.toString(n); // 매개변수 n을 정렬하기 위해 String으로 변환 Integer[] array = new Integer[number.length()]; // String 으로 바뀐 매개변수 n을 정렬시켜줄 배열 선언 for (int i = 0; i < number.length(); i++) { String indexNumber = number.substrin..

Programmers/Lv1 2023.01.19

[JAVA] 26장 I/O - 정의 및 File 클래스 생성자

I/O란 I (Input) / O (Output) 의 약자이며 "아이오" 라고 읽는다. 주로 두가지 경우에 사용된다. 파일을 읽거나 저장할 일이 있을 경우 다른 서버나 디바이스로 보낼 일이 있을 경우 JVM을 기준으로 Input은 파일에 읽을때, Output은 파일을 이용해 데이터를 가져오거나 외부로 전송할때 사용한다. byte 기반의 데이터를 처리할때는 java.io 패키지 안의 Stream 클래스를 사용하고, char 기반의 문자열로 이루어진 문자열 파일을 처리 할 때에는 Reader, Writer 클래스를 사용한다. Java 1.4 이후에는 보다 빠르게 I/O를 처리하기 위해 Buffer와 Channel 기반으로 데이터를 처리하는 NIO (New I/O)가 등장 Java 7 에서는 기존의 단점들을 ..

Java 공부 2023.01.19