Skills/Java 50

Java - Annotation

1. Annotation Java에서 Annotation(애노테이션)은 Java 소스 코드에 추가하여 사용할 수 있는 메타데이터(어떤 목적을 가지고 만들어진 데이터)의 일종으로 클래스 파일에 임베디드되어 컴파일러에 의해 생성된 후 JVM에 포함되어 작동하게 됩니다. 애노테이션의 목적은 개발을 하면서 프로그램의 소스코드 안에 다른 프로그램을 위한 정보를 미리 약속된 형식으로 포함시키기 위해 도입되었습니다. 애노테이션 도입 이전에는 주석을 이용해(Annotation의 사전적 의미는 주석을 뜻함) 소스코드에 대한 설명을 적었는데, 이 주석을 javadoc.exe라는 프로그램을 사용해 문서를 작성했다고 합니다. 뭐 예를 들어, /** */를 사용하여 문서화 주식을 한 뒤, javadoc이라는 유틸을 사용해 HT..

Skills/Java 2022.07.19

Java - Collection

Java에서 Collection에 대해 부분적으로만 알고 있어, 전체적으로 숙지하고자 작성한 글입니다. 1. Collection Java에서 Collection은 객체 그룹을 저장, 조작하기 위한 아키텍처를 제공하는 프레임워크로 JDK1.2에서 Collection Framework라는 개념이 정의 되었습니다. Collection은 사진과 같이 List와 Set, Queue로 구성되며, Map은 Collection에 포함되지는 않지만 Collection으로도 분류한다고 합니다. import java.util.Collection import java.util.Map import java.util.* // util 디렉토리에 있는 모든 클래스를 import 호출 시에는 위와 같이 호출하게 되는데, util.*..

Skills/Java 2022.07.18

Java - iterator

Java에서는 Collection에 저장된 요소를 읽어올 때, Iterator라는 반복자를 지원합니다. iterator 인터페이스를 구현한 클래스의 인스턴스를 반환하는 iterator()를 정의하여 요소에 접근할 수있습니다. list와 set 인터페이스 모두 사용할 수 있습니다. 1) boolean hasNext() 해당 Iterator가 다음 요소를 가지고 있다면 true를 반환하고, 없다면 false를 반환합니다. 2) Next() Iteration의 다음 요소를 반환하는 메서드 입니다. 3) default void remove() 해당 반복자로 반환되는 마지막 요소를 컬렉션에서 제거하는 기능입니다. LinkedList lnkList = new LinkedList(); lnkList.add(4); l..

Skills/Java 2022.07.17

Java - Character Class를 이용한 출력

 Java에서는 Character 클래스를 이용하여 문자와 관련된 문제를 좀 더 간편하게 처리할 수 있는데 살펴보겠습니다. 먼저 Java에서 제공하는 Character Class의 사용법은 여기를 보면 자세히 알 수 있습니다. https://docs.oracle.com/javase/8/docs/api/java/lang/Character.html Character (Java Platform SE 8 ) Returns the int value that the specified character (Unicode code point) represents. For example, the character '\u216C' (the Roman numeral fifty) will return an int with a..

Skills/Java 2022.07.14

Java - NullPointerException

1. NullPointerException NPE는 실제 값이 아닌 null값을 가진 객체나 변수를 호출할 때 발생하는 예외입니다. Java에서 데이터 타입은 기본과 참조 타입이 있습니다. Java에서 기본적으로 초기화되지 않은 객체 참조변수에 null을 할당하기 때문에, 참조 변수를 선언하고 초기화하지 않게되면 Java에서 자동으로 null로 지정된 특수한 값을 지정하게 됩니다. 예를 하나 살펴보자면 public class nullTest{ public static void main(String[] args){ String str1=null; System.out.println(str1.toString()); } } 위와 같은 경우는 null에 toString이 없기 때문에 예외가 발생하게 됩니다. 프로..

Skills/Java 2022.07.08

Java - Servlet(서블릿)

1. Servlet 서블릿은 동적 웹 페이지를 만들 때 사용되는 Java기반의 웹 애플리케이션 프로그래밍 기술입니다. 웹 페이지가 동작할 때는 HTTP 요청부터 시작해서 HTTP 메시지에서 Body의 내용을 파싱하고, 비즈니스 로직을 실행하여 HTTP 응답 메시지를 실행하게 되는 많은 동작이 이루어지는데, 위의 많은 과정을 간단한 메서드 호출만으로 자동으로 처리해주는 지원하는 역할을 합니다. 등장 배경을 보면 과거에는 정적인 자료(HTML, CSS..)만을 주고 받을 수 있었습니다. 이 때는 클라이언트가 자료를 요청하게 되면 서버는 미리 만들어진 자료를 저장하고 있다 반환하는 방식이었는데, 인터넷의 발달로 사용자가 많아지고 웹을 통해 더 많은 기능을 구현하고자 하는 방향으로 바뀌게 되었습니다. 이 때문에..

Skills/Java 2022.07.04

Java - replace,replaceall (feat. 정규표현식)

Java에서는 어떤 패턴에 대해 일치하는 부분의 일부나 모든 부분을 교체하는 메서드인 replace()와 replaceAll()을 지원합니다. 둘의 차이점을 한번 살펴보겠습니다. 1. replace() replace() 메서드는 어떤 패턴에 일치하는 일부나 모든 부분을 교체하여 새로운 "문자열"을 반환하는 메서드입니다. 형식을 살펴보자면 String replace(CharSequence target, CharSequence replacement) 첫 인자는 변환하고자 하는 문자열, 두 번째 인자는 변환하고자 하는 대상으로 위와 같습니다. 예시를 살펴보자면 String str1 = 'aabb'; System.out.println("result :"+str1.reaplce("aa","b"); // 출력 : ..

Skills/Java 2022.06.21

Java - char, String 차이

https://programmers.co.kr/learn/courses/30/lessons/12973 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr 위의 알고리즘을 풀다가 char와 String의 차이가 헷갈려서 작성했습니다. 결론부터 말하자면 글자수 제한과 내용물의 차이라고 볼 수 있습니다. 1. 차이점 먼저 char의 경우는 객체의 내용이 1개의 문자로 제한되는 반면, String은 제한없이 문자를 담을 수 있다는 것 입니다. 내용물의 측면에서는 char에 해당하는 변수 안에 값을 직접적으..

Skills/Java 2022.06.20

Getter, Setter 메서드

객체지향 프로그래밍에서 객체의 Data는 객체 외부에서 직접적으로 접근하는 것을 막습니다. 객체 데이터를 외부에서 읽고 변경하게 되면 객체의 무결성이 훼손되기 때문입니다. 그래서 객체지향 프로그래밍에서는 메서드를 통해 데이터를 변경하는 것을 선호합니다. Data는 외부에서 접근하지 못하도록 하고 메서드는 공개하여, 메서드를 통해 Data에 접근하도록 유도하여 필드 값에 부적절한 값을 대입되는 것을 막기 위해 사용합니다. 자바에서는 인스턴스 변수를 반환하는 Getter와 인스턴스 변수를 대입하거나 수정하는 Setter를 사용합니다. 1. 예시 package gettersetter; public class Student { // 은닉된 멤버 변수 private String Name; private int ..

Skills/Java 2022.06.08

Java - interface 1

1. Interface? 먼저 인터페이스는 동일한 목적 하에 동일 기능을 수행하게끔 강제하는 것이 인터페이스의 역할이자 개념입니다. 뭐 예를 들어서, 대학에서 교수님이 학생들에게 객체지향 프로그래밍을 설명하는 과제를 작성하라는 과제를 냈다고 가정해봅시다. 여기서 A라는 학생은 PPT로 작성을 하여 메일로 보냈고, B라는 학생은 word파일로 작성을 해서 학교 홈페이지에 올렸습니다. 여기서 문제는 무엇일까요? 교수님이 특정한 규격을 정해주지 않아 결과물이 제각각이라는 것입니다. 교수가 학교 홈페이지에 ppt파일로 작성하여 11일 자정까지 제출하라고 지시한다면 해결이 되겠죠. 위의 예시에서는 ppt파일로 작성하라는 것이 인터페이스가 되겠지요. 이처럼 동일 목적 하에 동일 기능을 보장하게 하는 것이 인터페이..

Skills/Java 2022.06.07