Study/Java 22

[JAVA] Optional 이란?

김영한님의 스프링 강의를 듣는데 Optional을 강의 중 자주 사용하셨는데 나는 잘 모르는 개념이라 검색을 했다. 잊어버리지 않게 검색해서 찾은 내용을 정리해보기로 한다. Optional 이란? java.util.Optional Java8부터 지원하는 클래스이다. Integer나 Double 클래스처럼 'T'타입의 객체를 포장해 주는 래퍼 클래스(Wrapper class)이다. 왜 사용하는가? null이 올 수 있는 값을 감싸는 Wrapper 클래스이기 때문에 if(value !=null){} 등의 복잡한 코딩을 하지 않고도 NPE(NullPointerException)를 방지해준다. 객체 생성 of() 메소드나 ofNullable(), empty() 메소드를 사용하여 Optional 객체를 생성할 수..

Study/Java 2022.12.06

[JAVA] 스택(stack)

백준 알고리즘 강의를 들으며 정리한 내용입니다. 스택은 한 쪽 끝에서만 자료를 넣고 뺄 수 있는 구조이다. 마지막에 넣은 것이 먼저 나오기 때문에 (LIFO: Last In First Out)라고 한다. push: 자료를 넣는 연산. return 값 x pop: 스택에서 자료를 빼는 연산. return 값 x top: 스택의 가장 위에 있는 자료를 보는 연산. 자료 값이 return됨. empty: 스택이 비었는지 아닌지 알아보는 연산. true, false return size: 스택에 저장되어 있는 자료의 개수를 알아보는 연산. 자료 개수 return 스택의 구현 일차원 배열로 구현 가능하다. int stack[1000]; int size = 0; void push(int data) { stack[s..

Study/Java 2022.11.22

[JAVA] 내부 클래스

자바의 정석을 읽으며 정리를 위해 포스팅합니다. 혹시 틀린 부분이 있다면 말씀 부탁드립니다^^~ 내부 클래스란?: 클래스 내에 선언된 클래스 내부 클래스를 선언하는 이유?: 두 클래스가 긴밀한 관계에 있기 때문. 두 클래스의 멤버들 간에 서로 쉽게 접근할 수 있다는 장점과 외부에는 불필요한 클래스를 감춤으로써 코드의 복잡성을 줄일 수 있다. class A{ ... } class B { ... } 이러한 독립적인 두개의 클래스를 class A{ .... class B{ .... } .... } 이렇게 바꾸면 B는 A의 내부 클래스가 된다. 내부 클래스의 선언 변수가 선언된 위치에 따라 인스턴스 변수, 클래스 변수(static 변수), 지역변수로 나뉘듯 내부클래스도 선언된 위치에 따라 나뉜다. 그리고 각 클..

Study/Java 2022.11.13

[JAVA] for문 축약(for each문), if-else 축약(삼항 연산자)

며칠 전 올렸던 사이트는 코딩 문제를 풀고 나서 다른 사람들의 답도 확인할 수 있게 되어 있는데, 구경하다보면 어떤 방식으로 돌아가는 건지는 알겠는데 생소한 코드들이 있었다. 보통 그런 것들이 제목에 있는 축약형이라 이 기회에 정리해본다. for문 축약(향상된 for문, for each문) 주로 배열 원소를 출력할 때 많이 사용한다. 배열 인덱스 문제를 해결할 수 있다. (ArrayIndexOutOfBoundsException 예외를 피할 수 있다.) (알고리즘 문제 풀 때 저 에러 너무 자주봐서 괴로웠던...ㅠㅠ) 아래는 문법이다. for(자료형 변수명 : 배열명){ ... } 자료형은 배열의 자료형이다. String[] arr = {"a","b","c","d"}; for(String s : arr) ..

Study/Java 2022.10.18

[JAVA] 클래스 변수, 인스턴스 변수, 지역 변수

이것도 면접 질문에 나왔던 것이라 정리해 본다. public class Sample{ int instanceV; //인스턴스변수 static int classV; //클래스변수 void method(){ int localV; //지역변수 } } 전역변수(Global variable) 클래스 영역(메소드 밖)에 선언된 변수를 의미한다. 프로그램이 실행되면 메모리 공간에 데이터를 저장한다. 인스턴스 변수 (instance variable) (= 객체 변수) -인스턴스가 생성될 때 메모리에 할당됨 -클래스 내에 선언된 변수 -클래스 변수와 달리 공유되지 않는다. -객체 생성 시마다 매번 새로운 변수가 생성된다. 클래스 변수 (class variable) (= static변수) -클래스가 메모리에 올라갈 때 메..

Study/Java 2022.10.12

[JAVA] 생성자

생성자(Constructor) 메소드명이 클래스명과 동일하고 리턴 자료형을 정의하지 않는 메소드 new 연산자와 함께 사용되어 클래스로부터 객체를 생성할 때 호출되어 객체를 초기화해준다. 객체 초기화란? : 객체를 선언하고 사용할 준비를 하는 것. 생성자의 특징 1. 반환값이 없어 return을 사용하지 않고, 반환 타입을 void형으로 선언하지 않는다. 2. 초기화를 위한 데이터를 인수로 전달받을 수 있다. 3. 객체를 초기화하는 방법이 여러 개 존재할 경우에는 하나의 클래스가 여러 개의 생성자를 가질 수 있다. (생성자도 메소드이기에 오버로딩이 가능하다는 뜻) 기본 생성자(default constructor) 자바의 모든 클래스에는 하나 이상의 생성자가 정의되어 있어야 한다. 하지만 특별히 생성자를 ..

Study/Java 2022.10.10

[자료구조] 배열과 리스트의 차이

어느 기업 면접을 갔을 때 문제지에 나온 문제인데 좀 더 자세히 정리해보고자 포스팅을 한다. 배열(Array)과 리스트(List) 모두 여러 개의 데이터를 하나의 이름으로 그룹핑해서 관리하기 위한 자료구조이다. 그렇다면 무슨 차이가 있을까? 배열(Array) 값에 대한 유일무이한 식별자(index)가 존재한다. 정해진 공간이 있고 크기가 고정되어 있기에 어떤 엘리먼트가 삭제되면 빈 공간으로 남겨야 한다.->메모리 낭비 논리적 저장 순서와 물리적 저장 순서가 일치 -> index로 해당 원소에 빠르게 접근할 수 있다. 객체생성시 크기 할당이 필수이다.(ex: int[] arr = new int[3];) 삽입/삭제는 느리지만 데이터 조회는 빠르다. 크기를 구할 때 length 를 사용한다. 리스트(List)..

Study/Java 2022.10.07

SQL관련 용어 정리

오늘도 몰랐던 메소드를 정리한다. 요즘에는 SQL과 DB를 배우는 중... ResultSet Statement와 execute를 통해 쿼리를 실행하면 ResultSet 타입으로 반환하여 결과값 저장 저장된 값을 한 행 단위로 불러올 수 있다. next() 메소드를 통해 선택되는 행을 바꿀 수 있다. 내려갈 다음 행이 있을 경우 TRUE를 반환하고, 없을 경우 FALSE를 반환한다. 출처: https://aricode.tistory.com/10 executeUpdate 수행결과로 Int 타입의 값을 반환 데이터베이스에서 데이터를 추가(Insert), 삭제(Delete), 수정(Update)하는 SQL 문을 실행 메서드의 반환 값은 해당 SQL 문 실행에 영향을 받는 행 수를 반환 출처: https://le..

Study/Java 2022.04.18

용어 정리(UDP관련)

학원 수업을 들으면서 헷갈렸던/ 몰랐던 용어를 다시 정리하며 공부하기로 한다. 이미지 및 용어 설명 출처 : https://coding-factory.tistory.com/ 모르는 용어나 어려운 개념이 있을 때마다 블로그를 검색하는데 뭘 찾든 정말 깔끔하게 정리해주신 글이 있다... 감사합니다. InetAddress : IP주소를 표현한 클래스 DatagramPacket : 애플리케이션에서 주고받을 데이터와 관련된 클래스 DatagramSocket : 실제 데이터의 송수신을 담당 ByteArrayOutputStream : 바이트 배열 데이터를 출력 스트림 클래스에 쓸 수 있도록 데이터를 바이트 배열에 기록 및 바이트 배열을 버퍼에 저장 toByteArray() : InputStream을 바이트 배열로 변환

Study/Java 2022.04.13

자바 입출력

오늘은 자바 입출력에 대해 정리하겠습니다. *입력/출력은 cpu기준입니다.* 입력: cpu에 입력(콘솔창에 입력) 출력: cpu에서 외부에 출력(ex: txt파일) import java.io.*; //텍스트 출력 public class Test01 { public static void main(String[] args) throws IOException{ File dir = new File("C:\\**\\***"); File file = new File(dir,"aaa.txt"); File dir = new File("경로") 경로 설정 File file = new File(dir,"aaa.txt"); 경로에 있는 텍스트 파일을 찾는데, 만약 파일이 없다면 FileNotFoundException 에러가..

Study/Java 2022.04.08
1 2 3