목록JAVA (39)
붓, 그리다
3.제너릭의 종류 1) Class 클래스명{}- 자료형이 Object인 대신 사용하는 키워드 T(Type)- 어떠한 자료형도 다 수용해주겠다는 표시 EX) 제너릭이 적용되는 클래스 작성 package j0620; import static java.lang.System.out; // 제너릭이 적용이 되는 클래스 작성 -> 특정 자료형의 값을 입력받아서 저장,조회,계산public class GenericEX { String [] v; // 1) v배열에 값을 저장시켜주는 메소드(Setter) public void set(String [] n) { v=n; //this.v=n; } // 2) v배열의 값을 꺼내서 화면에 출력(단순, 반복) public void print() { for(String s:v) o..
1.제너릭의 개요컬렉션에서 데이터를 저장할 때, 반드시 객체만 저장이 된다.String, Integer로 객체를 만들어 저장을 하면 자동적으로 Object형으로 변환이 된다.String만 저장을 하고싶은데데 Integer, Double형도 Object로 변환되어 저장이 되어 원하는 값이 아닌 데이터도 저장이 된다.또한, Integer, Double 형 데이터가 저장이 되어도 에러가 발생되지 않는다. (즉, 문제가 발생한지 모르게 됨)=> 저장된 데이터를 꺼내올때 문제 발생, 유지보수에 시간이 걸림 따라서, 원하는 데이터만 Collection에 저장하기 위해 Generics를 사용처음부터 저장할 데이터만 따로 지정 : 객체클래스명 2.장점1) 지정된 자료형 외에는 저장 불가=명확하다2) 꺼내올 때 명시적인..
[ 컬렉션 ]- 데이터를 저장, 즉 겍체만 저장 가능하다- 기본 자료형은 객체가 아니기 때문에 저장할 수 없음 [ Wrapper Class ]기본자료형의 값을 객체형태로 만들어서 제공되는 클래스-> 컬렉션에 기본자료형을 집어넣기 위해 만들어진 클래스- 기본자료형의 첫글자만 대문자로 쓰면 Wrapper Class가 된다 기본자료형byteshortintlongfloatdoublecharbooleanWrapper ClaseeByteShortIntger.parseInt(~)LongFloatDoubleCharacter.isDigit(),Character.toUpperCase()Boolea - String은 Wrapper Class가 아니다 1) unboxing- 자바의 객체형(Wrapper)이 기본자료형으로 변환..
쓰레드에서 주로 사용하는 것1) 동기화2) Singleton 패턴 [ 쓰레드 동기화 ]- 두 쓰레드가 하나의 데이터에 작업을 할 때 한 쓰레드가 진행 중인 작업을 다른 쓰레드가 간섭하지 못하도록 막는 것 RandomAccessFile) RandomAccessFile raf=null; // 현재폴더 기준 임의의 파일을 생성 RandomAccessFile 생성자) RandomAccessFile(File file, String mode) - 경로포함해서 생성할 파일명- 모드: 읽기(r)/읽고 쓰기(rw) 1) 메서드 전체를 임계 영역으로 지정- 메서드 앞에 synchronized 키워드를 입력 public synchronized void run(){} EX) package j0619;// 동기화import j..
[ 상속 ]- 기존의 클래스(부모 클래스)를 재상용하여 새로운 클래스(자식 클래스)를 작성하는 것- 자식클래스는 부모클래스로부터 멤버변수, 메서를 물려받음- 기존의 클래스=부모클래스=수퍼클래스- 새로운 클래스=자식클래스=서브클래스 1) 상속의 장점 및 특징- 기본의 부모클래스의 멤버변수, 메서드를 그대로 사용 가능 (재사용성)- 코딩양이 줄어들고 개발 시간이 단축- 생성자와 초기화 블록은 상속되지 않는다.- 멤버변수와 메소드만 상속된다. 단, private로 선언된 멤버변수과 메소드는 상속 불가(캡슐화된)- 자식 클래스의 멤버 개수는 부모 클래스보다 항상 같거나 많다. (상속 누적)-> 멤버변수와 메소드가 많아지기에 기능이 많아진다.- 다중상속 불가(동시에 한개이상의 부모로부터 상속금지) 2) 형식 cl..
[ 프로세스와 쓰레드 ] p 1) 쓰레드는 프로세스와 연관지어 나온다.2) 프로세스 : 실행 중인 프로그램- Foregroud Process - Background Process 3) 쓰레드- 응용프로그램 내에서 실행되는 최소 실행 단위- 프로레스 자원을 이용해서 실제로 작업을 수행하는 것- 데이터를 공유해서 작업 => 동기화 작업과 연관 EX) 웹 브라우져- 특정 사이트에 접속하여 홈페이지를 보여주는 프로그램1) 먼저 접속을 시켜주는 쓰레드가 존재2) 홈페이지를 보여주는 쓰레드3) 동영상, 문자, 데이터 등을 보여주는 쓰레드=> 하나의 프로그램에는 여러개의 쓰레드가 존재할 수 있다. [ 싱글 쓰레드와 멀티 쓰레드 ]1) 싱글 쓰레드2) 멀티 쓰레드- 쓰레드가 여러개가 작동- CPU 사용률을 향상- 자원..
[ 입력을 받아 파일로 저장 ]1) 자료형 상관없이 문자열 저장 : FileOutputStream, FileWriter2) 자료형에 맞게 저장 : DataInputStream, DataOutputStream3) 객체를 저장, 불러오기 : ObjectInputStream(객체 불러오기), ObjectOutputStream(객체 저장)- writeObject(저장시킬 객체명), readerObject() -> 객체 직렬화(Spring)와 연결 [ 직렬화 ]- 메모리상의 저장된 객체(=ObjectOutputStream)를 파일로 저장 역직렬화 ObjectInputStream - 네트워크 전송도 가능 1. 객체 만들기 : 직렬화가 가능한 클래스- 객체를 직렬화할 때 올바르게 저장되는 객체를 만들 수 있는 클래스..
1) 사원정보 파일로 저장 package j0616;//사원정보를 파일로 저장// 자바의 자료형에 맞게 저장 : DataInputStream, DataOutputStreamimport java.io.*;public class Sawon { public static void main(String[] args) throws Exception { // TODO Auto-generated method stub String mem_name=null; //이름 String mem_id=null; //사번 String mem_pwd=null; //암호 String mem_gender=null; //성별 String mem_age=null; //나이 String mem_phone=null; //전화번호 Buffered..
[ 스트림 ]- 소스와 타겟사이의 데이터 전송을 위한 가상을 통로- Source : 데이터를 전송해주는 쪽- Target : 데이터를 받는 쪽 특징)1) 쌍방향이 안됨, 단방향만 된다. -> 데이터 전송목적, 출력목적만으로 사용2) 다단계 결합이 있다. -> 스트림은 여러개 결합이 가능(생성자로 연결)3) 무한 대기가 존재한다. -> 입력받을 때까지 계속 대기하는 상태 - 데이터클래스 분류 : 전송해주는 데이터(문자, 이미지, 동영상,,)에 따라 분류 1. Byte 기반- 이미지, 동영상, 영문자 전달 가능- 입력스트림 : read(), close() 메서드를 사용- 출력스트림 : write(), clase()- FileInputStream : 외부에서 파일의 정보를 읽어오기- FileOutputStre..
[ 객체형 형변환 ] = 참조형 형변환 - 인터페이스, 배열, 클래스에 적용가능- 상속관계(부모-자식 클래스) 때문에 존재한다.- 기존 클래스의 재사용- 개발 시간을 단축=> 효율적인 운영가능=> 종속, 또는 비슷한 관계에 있는 객체형 내부에 공통적으로 사용한 메서드를 각각 만들지 않고하나의 메서드를 만들어 상속하여 for문 등의 조건을 선언하여 코드 수를 줄일 수 있다. 1) 자동 객체형변환- 데이터 크기가 큰 것에서 작은 것으로 자동 형변환이 가능- 자식클래스-> 부모클래스 2) 명시적인 객체형변환- 부모클래스에서 자식클래스로 변환할 때는 강제 형변환- 형변환할 클래스명을 앞에 ()로 명시한다. 3) 자동형변환 가능한지 확인하는 연산자 : instanceof if(객체명 instanceof 클래스명)..