공부 자료/Java23 [Java] 정규 표현식 1. 정규 표현식(Regular Expression) 정규 표현식은 특정한 규칙을 가진 문자열의 집합을 표현하기 위한 언어이다. 정규 표현식은 대부분의 프로그래밍 언어에서 문자열의 검색과 치환을 위해 지원하고 있다. 여기선 자바의 정규 표현식만 살펴본다. 2. 자바 정규 표현식 java.util.regex 패키지에 있는 클래스들에 정규 표현식과 관련된 내용들이 담겨져 있다. 대표적으로 Pattern 클래스와 Matcher 클래스가 있다. 그런데 따로 Pattern과 Matcher를 쓰지 않아도 String 메소드에서 regex를 매개변수로 받는 메소드들은 바로 정규식을 사용할 수 있다. 정규 표현식 문법 ^ 문자열의 시작 $ 문자열의 끝 . 임의의 한 문자 * 앞의 문자가 0번 이상 있다. + 앞의 문자.. 2022. 11. 22. [Java] 배열과 리스트, 무엇을 써야 할까? 알고리즘 문제를 풀다가 sort 작업을 배열에서 하는게 좋은지, 리스트로 옮긴 후에 진행하는게 궁금해졌다. 그리고 테스트를 하다 보니 변환 작업은 각각 얼마나 시간이 걸리는지, 그리고 어떨 때 변환을 하는게 좋고 어떨 때 안하는게 좋을 지 궁금해져서 관련된 모든 작업을 테스트해 보았다. 글 마지막에 어떤 상황에서 배열을 쓰고 어떤 상황에서 리스트를 써야할 지 정리해 두었다. 각 작업에서 가장 빠른걸 bold 처리 해두었다. 1. 정렬(sort) 배열과 ArrayList, LinkedList의 sort 시간을 살펴보았다. 길이가 100만인 int배열과 String 배열로 테스트 해 보았다. int 배열 배열에서 sort: 5ms ArrayList에서 sort: 9ms LinkedList에서 sort: 40.. 2022. 11. 19. [Java] Calendar 클래스 2022. 11. 18. [Java] 패키지와 접근 제한자 1. 패키지 패키지의 물리적인 형태는 파일 시스템의 폴더이다. 패키지는 클래스의 일부분으로, 클래스를 유일하게 만들어주는 식별자 역할을 한다. '상위 패키지-하위 패키지-클래스'로 구성되며 보통 도메인 이름을 역순으로 해서 패키지 이름을 정한다. ex.) com.mycompany.A => com은 상위 패키지, mycompany는 하위 패키지, A는 클래스 이름이다. 패키지 이름은 모두 소문자로 하는 것이 관례이다. 패키지 선언 클래스를 작성할 때 해당 클래스가 어떤 패키지에 속할 것인지를 선언해야 한다. 클래스가 선언된 위치에 존재하지 않을 경우 해당 클래스는 작동하지 않는다. package 상위패키지.하위패키지; public class ClassName{...} 패키지 불러오기 사용하고자 하는 클래스.. 2022. 11. 13. [Java] 싱글톤 전체 프로그램에서 단 하나의 객체만 만들도록 하는 객체를 의미한다. 싱글톤을 만들려면 외부에서 new 연산자로 생성자를 호출할 수 없도록 해야한다. 그래서 생성자 앞에 private 접근 제한자를 붙여주면 된다. 그 후 자신의 타입인 정적 필드를 하나 선언하고 자신의 객체를 생성해 초기화한다. 마지막으로 정적 메소드인 getInstance()를 선언하고 정적 필드에서 참조하고 있는 자신의 객체를 리턴해주면 된다. 다음은 싱글톤을 만드는 코드이다. public class 클래스 { //정적 필드 pirvate static 클래스 singleton = new 클래스(); //생성자 private 클래스() {} //정적 메소드 static 클래스 getInstance() { return singleton; .. 2022. 11. 13. [Java] 클래스 1. 객체 객체란 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있으면서 식별 가능한 것을 의미한다. 객체는 속성과 동작으로 구성되어 있다. 자바에서 속성은 필드(field), 동작은 메소드(method)라고 부른다. 2. 클래스와 인스턴스 객체를 만들기 위한 설계도가 클래스(class), 그 클래스로 만든 객체를 해당 클래스의 인스턴스(instance)라고 한다. 클래스의 구성 멤버로는 필드, 생성자(Constructor), 메소드가 있다. 이 구성 멤버들은 복수로 작성될 수도 있고, 생략할 수도 있다. public class ClassName{ //필드, 객체의 데이터가 저장되는 곳 int fieldname; //생성자, 객체 생성 시 초기화 역할 담당 ClassNa.. 2022. 11. 13. 이전 1 2 3 4 다음