본문 바로가기

PL/JAVA

(17)
[JAVA] Java Comparable, Java Comparator 따라서 우리가 임의로 만든 클래스에서도 Comparable 인터페이스를 구현하기 위해서는 compareTo()를 재정의해줘야 한다. 닉네임순으로 정렬하고 싶다면 아래와 같이 nickname 으로 compareTo를 재정의한다. package compare; public class MapleStoryUser implements Comparable { private String nickName; // 닉네임 private String guildName; // 길드명 private int level; //레벨 private int money; // 보유 메소 //생성자 public MapleStoryUser(String nickName, String guildName, int level, int money) ..
[JAVA] 우선순위 큐(Priority Queue), 오름차순(기본), 내림차순 사용하기 우선순위 큐도 Java에서 내부적으로 구현되어 있어 사용이 용이하다. 큐와 동일하게 add(), peek(), poll() 등의 메소드를 사용할 수 있다. add() 대신 offer() 메소드를 사용해도 동일한 결과를 얻는다. 우선순위 변경하기 우선순위를 정하는 기준은 Java의 정렬 기준과 동일하다. Java는 기본적으로 낮은 숫자부터 큰 숫자까지 오름차순으로 정렬하게 되는데, 만약 다른 오름차순으로 정렬하고 싶다면 Comparator 클래스나 Comparable 인터페이스를 이용해야 한다. Ex) 객체의 어떤 값에 따라 우선순위를 정해 정렬해야 할때, 오름차순이 아닌 내림차순 정렬을 할때 등등 Integer는 Collections.reverseOrder()를 사용해 내림차순 정렬을 할 수 있..
[JAVA] exe파일 실행, Java에서 cmd 사용하기 MS949를 해야 글자가 안 깨진다. /C는 다음과 같은 옵션이다. (/C옵션) /C 문자열이 지정한 명령어를 수행한 후에 종료합니다. 저 위의 명령어가 String 배열로 입력이 들어가는 것이다. 내부적으로 실행하는 방법은 Runtime Class를 이용하여 별도로 Thread를 이용하여 실행하는 방법이다. 원래 Java의 경우 Java 실행시 Runtime Class 실행하여 1개의 Thread를 생성한다, 내부적으로 Runtime Class를 하나 더 생성하여 도스명령어를 이용한 데이터를 가져온다. 이상이다. 만약 DB 백업 을 원하신다면 아래와 같이 데이터를 넣으면 쉽게 적용할 수있다. cmd[0] = "cmd.exe"; cmd[1] = "/C"; cmd[2] = "mysqldump -u root..
[JAVA] 배열 오름차순 정렬 [Java] 자바 배열 정렬하기(오름차순, 내림차순) Arrays.sort() 자바에서 배열이나 리스트를 정렬하려고 한다면 java.util.Arrays 클래스의 sort() 메서드를 사용하시면 따로 정렬 로직을 짜지 않아도 한번의 메소드 호출로 간편하게 배열이나 리스트를 정렬할 수 coding-factory.tistory.com
[JAVA] ArrayList 메소드 [JAVA - 자료구조] ArrayList 메소드 | Junjangsee's Blog ArrayList ArrayList란 자료구조의 한 종류로서 Java에서 가장 많이 사용되는 데이터 스트럭쳐입니다. 알고리즘에서 많이 활용되며, 실무에서 데이터를 다룰 때 입출력하는 부분에서 매우 많은 비중을 junjangsee.github.io
[JAVA] StringTokenizer 구분자 여러개 JAVA split, StringTokenizer 다수의 구분자 사용 구분자 여러개 사용하기 조건문에 처럼 |(shift + \, OR) 를 쓰니까 간단하게 된다 실습하면서 split과 StringTokenizer의 차이도 알게되었당 String str = "1@2#3@4&&5"; String aa[] = str.split("#|@|&"); Sys.. secr.tistory.com
[JAVA] String to int, int to String [JAVA] String to int, int to String 형변환 자바(JAVA) 형 변환(String과 int) Strinig to int String from = "123"; int to = Integer.parseInt(from); int to String int from = 123; String to = Integer.toString(from); nota.tistory.com
[JAVA] Scanner.useDelimiter java.util.Scanner 클래스의 useDelimiter 메서드 Scanner는 정규식 표현을 이용한 라인단위의 검색을 지원하며 구분자(delimiter)에도 정규식 표현을 사용할 수 있어서 복잡한 형태의 구분자도 처리가 가능하다. [스캐너 예제] 자바의 정석 Chapter 09 - velog.io
[JAVA] Iterator [Java] 자바 배열 전체 출력하는 5가지 방법 (Arraylist이용) : for문, iterator 사용 배열을 전체 보는 5가지 방법을 정리해 봅니다. For Loop (for 문) Advanced For Loop (상급 for 문) Iterator While Loop Collections’s stream() util (Java8) 이와 같이 5가지 방법이 있습니다. 이 다섯가지.. farcanada.tistory.com
[JAVA] 파일입출력 원리 1. 파일 객체를 만든다. 2. 해당 파일을 열어 읽는다. (+읽은 내용 알아서 처리, 어디다 쓰든지 문자열을 바꾸던지 뭐 맘대로 하면 된다.) 3. 파일을 닫는다. 자바 파일 입출력 (txt파일 한 문자씩, 한 줄씩, 한 번에 읽기) 자바 파일 입출력 원리 1. 파일 객체를 만든다. 2. 해당 파일을 열어 읽는다. (+읽은 내용 알아서 처리, 어디다 쓰든지 문자열을 바꾸던지 뭐 맘대로 하면 된다.) 3. 파일을 닫는다. 1) 한 문자씩 읽�� jeong-pro.tistory.com
[JAVA] 배열 길이
[JAVA] 배열 선언
[JAVA] static 1. static 정리 일반적으로 우리가 만든 Class는 Static 영역에 생성되고, new 연산을 통해 생성한 객체는 Heap영역에 생성됩니다. 객체의 생성시에 할당된 Heap영역의 메모리는 Garbage Collector를 통해 수시로 관리를 받습니다. 하지만 Static 키워드를 통해 Static 영역에 할당된 메모리는 모든 객체가 공유하는 메모리라는 장점을 지니지만, Garbage Collector의 관리 영역 밖에 존재하므로 Static을 자주 사용하면 프로그램의 종료시까지 메모리가 할당된 채로 존재하므로 자주 사용하게 되면 시스템의 퍼포먼스에 악영향을 주게 됩니다. [ Static 변수 특징 ] Static 변수는 클래스 변수이다. 객체를 생성하지 않고도 Static 자원에 접근이 가능하다..
JAVA 운영체제에 독립적 운영체제에 독립적이다. 자바 언어가 나오기 전까지 기존의 언어(Programing Language)는 한 운영체제(Window, Linux, Macintosh) 등의 운영체제에 적용하기 위해 많은 노력이 필요했었다. 자바 언어가 나오면서부터 이러한 적용하기 위한 노력들이 줄어들었다. 그 이유는 뭐였을까? 바로 애뮬레이터인 자바가상머신(JVM)을 통해서 가능해졌다. [[기존 언어]] [[운영체제, 하드웨어]] [[자바 언어]] [[JVM]] [[운영체제, 하드웨어]] 기존 언어는 운영체제와 하드웨어 등이 이해 할 수 있도록 각각 운영체제에 맞는 변환과정을 거쳐야 했음 (종속적) 자바 언어는 운영체제와 하드웨어가 아닌 JVM 하고만 통신함, 응용 프로그램으로부터 전달받은 내용..
JVM( Java Virtual Machine ) 자바 가상 머신의 구성 자바 가상 머신(JVM)은 다음과 같이 구성됩니다. 1. 자바 인터프리터(interpreter) 2. 클래스 로더(class loader) 3. JIT 컴파일러(Just-In-Time compiler) 4. 가비지 컬렉터(garbage collector) 자바 컴파일러에 의해 변환된 자바 바이트 코드를 읽고 해석하는 역할을 하는 것이 자바 인터프리터(interpreter)입니다. 자바는 동적으로 클래스를 읽어오므로, 프로그램이 실행 중인 런타임에서야 모든 코드가 자바 가상 머신과 연결됩니다. 이렇게 동적으로 클래스를 로딩해주는 역할을 하는 것이 바로 클래스 로더(class loader)입니다. JIT 컴파일러(Just-In-Time compiler)란 프로그램이 실행 중인 런타임에..
JAVA 프로그램의 실행 과정 자바는 자바 가상 머신(JVM, Java Virtual Machine)을 사용하여, 운영체제와는 독립적으로 동작할 수 있습니다 따라서 자바는 어느 운영체제에서나 같은 형태로 실행될 수 있습니다. 자바 컴파일러(Java compiler) 자바 컴파일러는 자바를 가지고 작성한 자바 소스 코드를 자바 가상 머신이 이해할 수 있는 자바 바이트 코드로 변환합니다. 자바 컴파일러는 자바를 설치하면 javac.exe라는 실행 파일 형태로 설치됩니다. 자바 바이트 코드(Java bytecode) 자바 바이트 코드(Java bytecode)란 자바 가상 머신이 이해할 수 있는 언어로 변환된 자바 소스 코드를 의미합니다. 자바 컴파일러에 의해 변환되는 코드의 명령어 크기가 1바이트라서 자바 바이트 코드라고 불리고 있습니다..
JDK와 SDK 차이점 JDK란 "Java Development Kit (자바 개발 도구)"이라는 의미이고, SDK란 "Software Development Kit (소프트웨어 개발 도구)"의 약자입니다. 자바만 개발할 수 있는 SDK를 JDK라고 합니다. 마이크로소프트(MS) 등의 다른 회사에서도 SDK라는 이름으로 개발 도구들을 많이 발표합니다. 그런데 현재 JDK 는 대부분 "Java SE 개발 도구"를 의미합니다. "Java EE" 개발도구는 SDK라고 부르더군요. 자바 초보자라면 "Java SE 개발 도구"를 다운받아서 설치하면 됩니다. 결국 자바프로그래밍에서의 JDK와 SDK는, 표현의 차이만 있을 뿐 서로 동일한 것이라고 볼 수 있습니다.