Language`(93)
-
[Java] 진법 변환 - Integer 클래스
Integer 진법 변환 ※ Integer클래스를 통해서 원하는 숫자를 특정 진수로 쉽게 변환할 수 있다 ▶ 10진수 ~> n진수 (2, 8, 16) 2진수 : Integer.toBinaryString(10진수 숫자) 8진수 : Integer.toOctalString(10진수 숫자) 16진수 : Integer.toHexString(10진수 숫자) ▶ Integer.parseInt(String s) String s를 10진수로 변환 ▶ Integer.parseInt(String s, int radix) s를 radix 진수로 생각하고 해당 s를 10진수로 변환 String s1 = "1100"; String s2 = "1111"; String s3 = "111000"; Integer.parseInt(s1,..
2022.01.06 -
[Java] String / StringBuffer / StringBuilder
String 한번 값이 할당되면 할당된 값은 절대로 변하지 않는다 (Immutable) String 객체는 한번 생성되면 할당된 메모리 공간이 변하지 않는다 + 연산자 / concat 메소드를 통해서 기존 String 객체 문자열에 다른 문자열을 붙이면 새로운 String 객체를 생성하고, 새로운 String 객체에 연결된 문자열을 저장한다 장점 동기화를 신경쓰지 않고, 내부 데이터를 자유롭게 공유한다 단점 문자열 연산이 많을 경우 힙 메모리(Heap)에 많은 임시 가비지가 생성되어서 힙메모리가 부족해져서 Application 성능에 치명적이다 StringBuffer / StringBuilder - String과는 반대로, Mutable 특성을 가진다 - 동일한 객체 내에서 문자열을 변경할 수 있다 - ..
2021.12.30 -
[Java] File 클래스
File 클래스 - 파일이나 디렉터리에 대한 경로명, 크기, 타입, 수정 날짜,.. 등 속성 정보 제공 - 파일이나 디렉터리에 대한 파일 삭제, 디렉터리 생성, 파일 이름 변경,... 등 파일 관리 작업 지원 File(String pathname) : pathname의 완전 경로명이 나타내는 File 객체 생성 File(String parent, String child) : parent 디렉터리에 child 이름의 서브 디렉터리/파일을 나타내는 File 객체 생성 File(File parent, String child) : parent 디렉터리에 child 이름의 서브 디렉터리/파일을 나타내는 File 객체 생성 File(URI url) : file:URI를 추상 경로명으로 변환하여 File 객체 생성 ..
2021.12.17 -
[Java] 버퍼 입출력
버퍼 - 데이터를 잠시 저장하기 위한 메모리 - 시스템의 속도나 효율 상승 입력 버퍼 스트림 BufferedReader / BufferedInputStream BufferedReader(Reader in) : in을 연결하는 디폴트 크기(16384byte)의 문자 입력 버퍼 스트림 생성 BufferedReader(Reader in, int size) : in을 연결하는 size 크기의 문자 입력 버퍼 스트림 생성 BufferedInputStream(InputStream in) : in을 연결하는 디폴트 크기(2048byte)의 입력 버퍼 스트림 객체 생성 BufferedInputStream(InputStream in, int size) : in을 연결하는 size 크기의 입력 버퍼 스트림 객체 생성 Bu..
2021.12.17 -
[Java] 바이트 스트림
바이트 스트림 클래스 - 바이트 단위로 바이너리 데이터가 흐르는 스트림 - 텍스트 파일(문자 데이터) + 이미지 파일(바이너리 데이터) 모두 입출력 가능 InputStream/OutputStream : 추상 클래스 / 바이트 입출력 처리를 위한 기능 보유 (슈퍼 클래스) FileInputStream/FileOutputStream : 파일 입출력을 위한 클래스 / 파일로부터 바이너리 데이터를 읽기/쓰기 가능 DataInputStream/DataOutputStream : boolean, char, int, long,... 타입의 값을 바이너리 형태로 입출력 / 문자열도 바이너리 형태로 입출력 바이너리 파일 쓰기 FileOutputStream - 변수나 배열에 들어 있는 바이너리 값(이진수)들을 그대로 파일에..
2021.12.17 -
[Java] 문자 스트림
문자 스트림 클래스 - Reader/Writer 형식 FileReader/FileWriter FileInputStream(InputStreamReader)/FileOutputStram(OutputStreamWriter) - 2byte의 유니코드 문자를 단위로 입출력하는 스트림 - 이미지, mp3 같은 바이너리 바이트 값들은 처리 X - 문자 입력 스트림 : 바이트들을 전달 받음 → 해당 바이트들을 '로컬 문자 집합(MS949)'에 있는 문자인지 비교하여 문자로 변환 FileReader - 문자열 단위의 자료처리 FileReader(File file) : file로부터 읽는 FileReader 생성 FileReader(String name) : name이름의 파일로부터 읽는 FileReader 생성 Fil..
2021.12.17 -
[Java] 입출력 스트림
스트림 입출력 - 스트림 : 연속적인 데이터의 흐름 or 데이터를 전송하는 소프트웨어 모듈 스트림은 도착한 순서대로 데이터를 흘러 보낸다 - 입출력 스트림 객체와 연결해서 쉽게 데이터 입출력을 실행 - 스트림의 양끝에는 입출력장치, 자바 응용프로그램이 연결된다 자바 응용 프로그램 : 입출력 스트림과만 연결 입출력 스트림 : 입출력 장치를 제어하고 실직적 입출력 담당 - 스트림은 단방향이다 - 스트림을 통해 흘러가는 기본 단위는 byte나 문자(char)이다 - 스트림은 FIFO(First In First Out) 구조이다 문자 스트림 - only 문자만 다룬다 → ASCII (a, b, c, &, !, ....) - 문자가 아닌 정보가 입력되면 응용프로그램에 이상한 문자가 전달된다 - 문자(char) 하..
2021.12.17 -
[Java] 제네릭 만들기
제네릭 클래스 작성 - ex) 타입 매개변수 T를 가진 제네릭 클래스 Myclass - ex) 타입 매개변수 T를 가진 제네릭 클래스 stack (스택 자료구조) class Myclass{ T val; // 타입이 T인 변수 val void set(T val){ this.val = val; } T get(){ // 값 val를 타입 T로 return return val; } } class stack{ int top; // 스택의 top Object [] stack; // item을 저장할 stack 배열 public stack(){ top = -1; stack = new Object[10]; // 제네릭 매개변수로는 객체 생성, 배열 생성이 불가능 // 따라서 Object 배열을 생성해서 실제 타입 객체..
2021.12.13 -
[Java] 컬렉션과 제네릭
배열 vs 컬렉션 배열 - 고정 크기 - 배열의 중간에 삽입/삭제가 이루어지면 데이터들이 이동해야 한다 컬렉션 - 가변 크기 - 컬렉션 내에서 삽입/삭제가 이루어지면 컬렉션이 자동으로 데이터들을 이동시킨다 - '제네릭'이라는 기법으로 구현 - Vertor, ArrayList : 가변 크기의 배열 구현 - LinkedList : 노드들이 링크로 연결되는 리스트 구현 - Stack : 스택 구현 - HashSet : 집합 구현 모두 Collection를 상속받음 단일 클래스의 객체만을 요소로 다룬다 컬렉션 특징 1. '제네릭'이라는 기법으로 구현 - 컬렉션 클래스의 이름에 , , 등(타입 매개변수) 이 항상 포함 - 컬렉션을 여러 종류의 타입으로 변신할 수 있도록(일반화) 타입 매개변수를 사용 - 컬렉션을 ..
2021.12.10 -
[Java] Wrapper 클래스
Wrapper 클래스 - boolean, char, byte, short, int, long, float, double 8개의 기본타입을 객체로 다루기 위해 JDK에 만들어진 클래스 기본타입 boolean char byte short int long float double Wrapper 클래스 Boolean Character Byte Short Integer Long Float Double 객체 생성 (valueOf) - Character는 문자열로 객체 생성 X - Character를 제외한 나머지 Wrapper 클래스는 문자열로 객체 생성 가능 Integer i = Integer.valueOf(10); Integer i = Integer.valueOf("10"); Character c = Charac..
2021.12.01 -
[Java] 추상 클래스 / 인터페이스
추상 클래스 (abstract) - 선언은 되어 있으나, 코드가 구현되어 있지 않은 메소드 - 추상 메소드를 가지고 있으면, 반드시 추상 클래스로 선언 - 객체를 생성할 수 없다 - 레퍼런스 변수는 선언 가능하다 ※ Example abstract class Calculator{ public abstract int add(int a, int b); public abstract int subtract(int a, int b); public abstract double average(int[] a); } class Cal extends Calculator{ // 추상 메소드 구현 @Override public int add(int a, int b) { return a+b; } @Override public i..
2021.11.24 -
[Java] 메소드 오버라이딩
메소드 오버라이딩 (Method Overriding) - 슈퍼 클래스에 선언된 메소드와 같은 이름/리턴 타입/매개 변수 리스트를 갖는 메소드를 서브 클래스에서 재작성 - 슈퍼 클래스의 메소드를 '무시하기/덮어쓰기' - 슈퍼 클래스 메소드의 접근 지정자보다 무조건 접근 범위가 같거나 넓어야 한다 - static/private/final로 선언된 메소드는 오버라이딩 X ※ 동적 바인딩 - 실행할 메소드를 컴파일 시(Compile time)에 결정하지 않고, 실행 시(Run time)에 결정 - 슈퍼 클래스의 메소드를 무시하고, 서브 클래스에서 오버라이딩한 메소드가 무조건 실행 ※ Example class Shape{ public void draw(){ System.out.println("Shape"); } ..
2021.11.24