Programming/Java

Programming/Java

[Java] 인코딩, 디코딩 (Encoding, Decoding)

💡인코딩 (Encoding) 인코딩은 문자 코드(자바 데이터)를 부호화(1,0)하는 작업으로, 이때 부호화란 1과 0으로 바꾸는 작업을 의미한다. 부호화를 예로 들면 자바 프로그램에서 "홍길동"을 저장하려고 할 때, 텍스트 파일을 '100110111010'과 같은 숫자 형태로 저장하는 것이다. 💡디코딩 (Decoding) 디코딩은 부호화 데이터를 문자 코드로 변환하는 작업, 즉 1과 0으로 된 데이터를 읽어서 우리가 쓰는 형태의 데이터로 바꾸는 작업을 한다. 💡인코딩 / 디코딩 규칙 문자를 1과 0로 바꾸려면 어떤 문자를 1과 0으로 바꿀 건지 규칙을 만들어야 하는데, 국가마다 쓰는 표현이나 관계들이 복잡하게 얽혀있다 보니 많은 규칙이 만들어지게 되었다. 규칙의 특징에 있어서 주목해야 하는 정보는 byt..

Programming/Java

[Java] File/Directory: Input/Output (IO)

자바 프로그램에서 외부의 파일을 접근하는 방법은 다음의 과정을 거친다. 먼저 외부 파일을 참조하는 참조 객체(대리자, 위임자)를 생성한다. 그리고 참조하는 객체를 조작한다. 그 행동의 결과가 외부 파일이 적용되는 작동 방식이다. 본문에서 다룰 텍스트 파일 또한 자바 프로그램의 외부 파일이다. 텍스트 파일을 바로 자바로 가져오려고 하면 난이도가 많이 올라가고 코드도 복잡해진다. 그래서 자바와 외부 파일을 이어주는 중개인을 만들고 시작하는 방식으로 작성하였다. 여기서 사용하는 파일 참조 클래스는 java.io.File에 속한 클래스이다. 💡File 조작 파일 데이터 확인 File file = new File("C:\\Class\\code\\java\\file\\data.txt"); System.out.pri..

Programming/Java

[Java] Set Interface: HashSet Class

💡HashSet Class Set 인터페이스는 순서가 없는 데이터 집합으로, 요소를 구분하는 식별자가 없다는 특징이 있다. 방을 식별하는 번호나 식별자가 없다는 말은 똑같은 데이터가 2개 들어 있으면 데이터를 구분할 수 있는 방법이 없다는 의미이다. 따라서 Set은 데이터 중복을 허용하지 않는다. ArrayList 클래스와 비교해보며 HashSet의 특징을 알아보도록 하자! HashSet 클래스의 활용 HashSet 선언하기 // ArrayList list = new ArrayList(); HashSet set = new HashSet(); 요소 추가하기 // list.add("강아지"); // list.add("고양이"); // list.add("거북이"); set.add("강아지"); set.add(..

Programming/Java

[Java] Map Interface: HashMap Class

💡HashMap Class HashMap Class는 요소에 접근할 때 키(key)를 사용하는 방식이다. 이때 방 번호가 없다는 말은 순서가 없다는 뜻이기도 하다. 여기서 key는 강의실 5개가 있다고 할 때, 햇님반, 달님반, 별님반, 화성반, 지구반 각각의 이름을 말한다. 또한 각 개별적인 키(key)에는 값(value)이 부여된다. (ex 햇님반 10명) HashMap은 요소의 일괄 접근이 불가능해 반복문을 사용할 수 없지만, 이는 용도가 다를 뿐이지 좋고 나쁘다는 의미는 아니다. 이러한 HashMap의 특징으로 인해 요소끼리의 구분이 용이해졌다. 값을 확인하지 않더라도 식별자 key로 방의 의미를 알 수 있기 때문에 가독성이 굉장히 좋다. HashMap 클래스의 활용 HashMap 선언하기 Has..

Programming/Java

[Java] List Interface: Stack Class, Queue Interface

💡Stack Class Stack 클래스는 한쪽이 막혀있는 파이프 구조를 떠올리면 된다. 후입선출 방식(LIFO, Last Input First Output)으로, 저장소에 나중에 들어간 요소가 가장 먼저 나온다. Stack을 활용한 예로는 되돌리기(Ctrl + Z), 다시하기(Ctrl + Y) 기능이 있다. 데이터를 넣을 때에는 Push Down, 데이터를 꺼낼 때에는 Pop Up이라는 표현을 쓴다. Stack 클래스의 활용 Stack 선언하기 Stack stack = new Stack(); 제네릭의 타입 변수를 사용하여 Stack 배열을 생성해준다. 요소 추가하기 T push(T value) stack.push("짜장면"); stack.push("짬뽕"); stack.push("볶음밥"); Stack..

Programming/Java

[Java] List Interface: ArrayList Class

순수 배열과 ArrayList 클래스 모두 데이터 요소를 저장하고 관리할 때 사용한다. 순수 배열은 크기가 고정되어 있어 데이터의 추가에 제약이 있고 삭제가 불가능하지만, ArrayList 클래스는 배열의 한계를 해결하여 사용하기에 편리하다. 소스 코드를 살펴보며 ArrayList의 특징과 사용법, 주요 메서드를 알아보도록 하자! 💡순수 배열 // Create int[] num1 = new int[3]; num1[0] = 10; num1[1] = 20; num1[2] = 30; // Read System.out.println(num1[0]); System.out.println(num1[1]); System.out.println(num1[2]); System.out.println(num1.length); ..

Programming/Java

[Java] 컬렉션 (Collection)

💡JCF, Java Collection Framework 컬렉션은 자료구조이자 무언가를 모아놓은 집합(배열)이며, 기존의 배열에서 향상된 배열을 의미한다. 기존의 순수 배열에서 사용법을 개량하거나 용도에 따른 입출력 방식 또는 효율성을 높였다는 특징이 있으며, 어떤 분야에서 배열을 특화시켰느냐에 따라 종류가 굉장히 많다. 또한 컬렉션은 클래스와 내부 순수 배열을 가지고 있으며, 길이가 가변적이어서 방의 개수를 마음대로 늘이고 줄이는게 가능하다는 장점이 있다. 컬렉션을 읽는 방법 - Array+ List - Linked+ List - Hash+ Map - Tree+ Map - Hash+ Set - Tree+ Set 앞에 단어는 물리 구조(메모리의 모양)를 나타내고, 뒤에 단어는 인터페이스(사용법)을 나타낸..

Programming/Java

[Java] official document 활용

프로그래밍 공부를 하면서 공식 도큐먼트를 보는 연습이 필요하다. Java® Platform, Standard Edition & Java Development Kit Version 11 API Specification Overview (Java SE 11 & JDK 11 ) This document is divided into two sections: Java SE The Java Platform, Standard Edition (Java SE) APIs define the core Java platform for general-purpose computing. These APIs are in modules whose names start with java. JDK The Java Development K..

Isaac-Christian
'Programming/Java' 카테고리의 글 목록 (3 Page)