본문 바로가기

Programing Language/JAVA31

Java 8 에서 추가된 기능 Java 8 에서 추가된 기능new Date and Time API (LocalDateTime 등)Lambda, Stream APIOptional classInterface Default Method람다식(Lambda expression)메서드를 하나의 식으로 표현한 것 코드가 간결해진다는 장점이 있지만, 람다식을 남용하면 오히려 코드를 이해하기 어려울 수 있다.int min (int a, int b) { return a > b ? b : a;}// 람다식 방식(a, b) -> a > b ? b : a;for (int i = 0; i System.out.println(value)); 스트림 (Stream API)스트림(Steam)은 컬렉션이나 배열 등과 같은 요소들의 집합들에 대한 처리를 보다 효.. 2025. 4. 25.
java, python변수에 들어있는 데이터의 저장공간 Python변수에 담긴 데이터를 CSV파일로 변환, CSV파일의 데이터를 Java변수에 파징 위와 같은 상황에서 혼란을 겪음Java 변수에 들어있는 데이터"ㅁㄴ"과 Python 변수에 들어있는 데이터"ㅁㄴ"은서로 다른 저장 공간을 차지한다   언어별로 메모리관리방식, 실행환경, 인코딩.... 이 다르다 같은 문자열 "ㅁㄴ"이라도 Java와 Python에서 각각 완전히 다른 메모리 공간을 차지하게 된다 2025. 2. 26.
Java, Js 변수 차이점 JavaScript의 변수는 어떤 특정 타입과 연결되지 않으며, 모든 타입의 값으로 할당 가능java의 변수는 타입과 연결Java 정적(Static) 타입 언어이며, 강한 타입(Strongly Typed) 언어입니다. 즉, 변수를 선언할 때 반드시 타입을 명시해야 하며, 변수의 타입이 변경될 수 없습니다. 타입 안정성이 높음 JavaScript 동적(Dynamic) 타입 언어이며, 느슨한 타입(Loosely Typed) 언어입니다. 즉, 변수의 타입을 선언할 필요가 없으며, 실행 중에 타입이 변경될 수 있습니다. 타입 안정성이 낮음 2025. 2. 25.
메서드 안에서 변수값 변하는경우 메서드 안에서 변수값 변하는경우내 생각처럼 안되고, 내 생각이 잘못됨 마지막 경우인 map으로 했을때만 내 생각과 일치 2024. 11. 13.
직렬화, 역직렬화 직렬화(Serialization) 객체 데이터를 통신하기 쉬운 포멧(Byte,CSV,Json..) 형태로 만들어주는 작업 연속적인 데이터(스트림)로 변형하여 전송 가능한 형태로 만드는 것 역직렬화(Deserialization)직렬화된 데이터를 다시 객체의 형태로 만드는 것 직렬화는 왜 필요한가자바에는 원시타입(Primitive Type)이 byte,short,int,long,float,double,boolean,char 총 8가지가 있다. 그리고 그 외 객체들은 주소값을 갖는 참조형 타입이다. 원시타입은 stack에서 값 그 자체로 갖고있어 외부로 데이터를 전달할때, 값을 일정한 형식의 raw byte 형태로 변경하여 전달할 수 있다.하지만객체의 경우 실제데이터는 Heap영역에 존재하고, stack에서는.. 2024. 10. 9.
Serializable, Throwable, Exception package java.io;public interface Serializable { // 걍 비어있음 }저게 Serializable.class의 코드 전부임 package java.lang;import java.io.*;import java.util.*;public class Throwable implements Serializable { ~ ~ // 코드 엄청 많음 ~ ~} package java.lang;public class Exception extends Throwable { ~ ~ // 코드 별로 없음} 2024. 9. 28.