프로그래밍 언어/JAVA
-
[JAVA Stream] map, filter, sorted 사용법 알아보기프로그래밍 언어/JAVA 2023. 5. 24. 11:48
책을 보며 공부하고 있는데 다음과 같은 문장이 나왔다. vo.getAuthList().stream() .map(auth -> new SimpleGrantedAuthority(auth.getAuth())).collect(Collectors.toList()) 이는 AuthVO 인스턴스를 GrantedAuthority 객체로 변환하는 과정이다. 여기서 map의 사용법에 의문을 가졌다. https://wonisdaily.tistory.com/133 [ch14 Stream] 스트림 생성과 연산, Optional 📑 스트림(Stream) 이란? 지금까지 많은 수의 데이터를 다룰 때, 컬렉션이나 배열에 데이터를 담고 원하는 결과를 얻기 위해 for문과 Iterator를 이용해 코드를 작성해왔다. 그러나 이런 방식으로..
-
[JAVA] java.io.File API 주요 메서드프로그래밍 언어/JAVA 2023. 5. 10. 15:21
파일 업로드 처리를 하다보면 new File()을 자주 사용하게 되므로 File의 주요 메서드를 정리해볼까 한다. 📑 생성자 📌new File( File parent, String child) : 상위 주소와 파일 이름(또는 디렉토리) 📌 new File(String pathname) : 상위 주소 📌 new File(URI uri) : 파일의 uri 주소 📑 메서드 타입 메서드 설명 boolean exists() 파일이 실제 존재하는지 판단 boolean isDirectory() 디렉토리인지 판단 boolean isFile() 파일인지 판단 boolean canRead() 파일이 읽기 가능한지 판단 boolean canWrite() 파일이 쓰기 가능한지 판단 boolean canExecute() 파일이..
-
[JAVA] java.io.File 의 mkdirs()와 mkdir() 차이프로그래밍 언어/JAVA 2023. 5. 10. 15:03
만약 기존의 폴더가 생성되어 있지 않다면 폴더를 생성하라는 다음과 같은 코드가 있다. 근데) 폴더 생성이 안되는 거 아닌가?? mkdirs()를 mkdir()로 불러왔기 때문이다. 그럼 그 차이가 무엇일까? File uploadPath = new File(uploadFolder, getFolder()); log.info("upload path: " + uploadPath); if(uploadPath.exists() == false) { uploadPath.mkdir(); // 새로운 폴더 생성 } JAVA API에서는 디렉토리를 생성하기 위해 , File.mkdir()과 File.mkdirs() 두 개의 API가 제공된다. 이 API는 모두 디렉토리를 생성하는 기능을 하지만, 세부적으로는 약간 틀린 기능..
-
[JAVA] String, StringBuilder, StringBuffer의 차이점 알아보기프로그래밍 언어/JAVA 2023. 4. 26. 10:51
📑 String이란? String과 다른 (StringBuilder, StringBuffer)의 차이는 String은 immutable(불변), 다른 클래스는 mutable(변함)에 있다. String은 문자열을 대표하는 것으로 문자열을 조작하는 경우 유용하게 사용할 수 있다. + 연산자 또는 concat 메서드를 통해 기존에 생성된 String 클래스 객체에 다른 문자열을 붙이면 기존 객체에 문자열이 추가되는 걸까?? 아니다! 기존에 생성되어 있는 String 객체는 그대로 있고 추가로 새로운 String 객체를 만든 후 새 String 객체에 연결된 문자열을 저장하고 그 객체를 참조하도록 한다. 즉) String 클래스 객체는 Heap 메모리 영역(가비지 컬렉션이 동작하는 영역)에 생성되는 것이다. ..
-
[JAVA] ArrayList 값 출력하기 ( 인덱스, forEach, 확장 for문)프로그래밍 언어/JAVA 2023. 4. 10. 15:10
forEach와 확장 for문 예제를 정리할 겸 ArrayList에서 값 꺼내는 방법을 알아볼까 한다. package ex; import java.util.ArrayList; import java.util.Iterator; public class ForEach { public static void main(String[] args) { ArrayList list = new ArrayList(); list.add(1); list.add(2); list.add(3); list.add(4); list.add(5); //1. 리스트 값 배열 형태로 출력 System.out.println(list); //2. 리스트 iterator로 출력하기 Iterator it = list.iterator(); while(it..
-
[ch12 자바 지네릭스] 개념, 다형성, Generic 타입 클래스프로그래밍 언어/JAVA 2023. 2. 27. 17:04
📑 지네릭스란? (Generics) 지네릭스는 다양한 타입 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입 체크를 해주는 기능이다. 객체의 타입을 컴파일 시에 체크하기 때문에 객체의 타입 안전성을 높이고 형변환의 번거로움이 줄어든다. ArrayList list = new ArrayList(); list.add(2); //ok list.add("2"); // 컴파일 에러, Integer 타입 외에 다른 타입은 저장 불가 그리고 저장된 객체를 꺼낼 때는 형변환이 필요 없어서 편리하다. 이미 어떤 타입의 객체들이 저장되어 있는지 알고 있기 때문이다. 아래 코드를 통해 개념을 이해해보자. //1. 지네릭스 사용 x ArrayList list = new ArrayList(); list.add(10); ..
-
[JAVA] 자바 예외처리 이해하기프로그래밍 언어/JAVA 2023. 2. 15. 12:57
📑 자바 예외 계층 🎈 Object : 예외도 객체이다. 모든 객체의 최상위 부모는 Object 🎈 Throwable : 최상위 예외이다. 하위에 Exception과 Error가 있다. 🎈 Error : 메모리 부족이나 심각한 시스템 오류와 같이 애플리케이션에서 복구 불가능한 시스템 예외이다. 애플리케이션 개발자는 이 예외를 잡으려고 해서는 안된다. 상위 예외를 catch로 잡으면 그 하위 예외까지 함께 잡는다. 따라서 애플리케이션 로직에서는 Throwable로 잡으면 안되는데, 앞서 이야기한 Error 예외도 잡을 수 있기 때문이다. 애플리케이션 로직은 이런 이유로 Exception 부터 필요한 예외로 생각하고 잡으면 된다. 🎈 Exception : 체크 예외 애플리케이션 로직에 사용할 수 있는 실질적..
-
[JAVA] ArrayList 초기화하는 방법 4가지프로그래밍 언어/JAVA 2023. 1. 27. 15:54
📑 1. Arrays.asList() 로 초기화하기 Arrays.asList(array)는 인자로 전달된 배열을 List로 생성하여 리턴한다. ArrayList 객체로 리턴받고 싶다면 new ArrayList(Arrays.asList(array))처럼 ArrayList로 변환하시면 된다. List list = Arrays.asList(new Integer[]{1,2,3,4,5} List list = Arrays.asList(1,2,3,4,5) import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class Example { public static void main(String[] args) { List lis..