Language/Java 썸네일형 리스트형 [JAVA] JVM, JRE, JDK 자바의 동작원리 이 글은 백기선 님의 "더 자바, 코드를 조작하는 다양한 방법" 강의를 수강 후 참고하여 작성한 글입니다. JVM (Java Virtual Machine) : 자바 가상 머신 - 바이트 코드를 OS에 특화된 코드로 변환하여 실행해 준다. 바이트 코드란? - 자바 가상 머신이 실행하는 명령어의 형태 설명만으로는 이해하기 어려울 수 있기 때문에 직접 java 파일을 컴파일하여 어떤 식으로 동작하는지 살펴보았다. HelloWorld.java라는 간단한 파일을 생성하였다. 내용은 다음과 같다 public class HelloJava { public static void main(String[] args) { System.out.println("Hello World"); } } javac 명령어를 통해 해당 파일.. 더보기 [Java] BigInteger 백준 브론즈 등급의 알고리즘 문제를 풀던 중 .... https://www.acmicpc.net/problem/2338 2338번: 긴자리 계산 첫째 줄에 A+B, 둘째 줄에 A-B, 셋째 줄에 A×B를 출력한다. 각각을 출력할 때, 답이 0인 경우를 제외하고는 0으로 시작하게 해서는 안 된다(1을 01로 출력하면 안 된다는 의미). www.acmicpc.net 위와 같은 문제를 만났다. 문제 설명을 봐선 크게 특별할게 없지만... "각각의 수는 10진수로 1,000자리를 넘지 않으며 양수와 음수가 모두 주어질 수 있다." 라는 설명이 있다. 1,000자리면 굉장히 긴 자릿수 이기때문에 평소 사용하던 int 를 사용해선 범위를 초과하게 될것이다. 또한, long 타입으로도 해결이 되지않을것이다. int .. 더보기 [Java] JPA ( Java Persistence API ) 1. JPA란? 2. ORM이란? 3. JPA의 장점 4. JPA의 단점 5. 주요 기능 및 사용예제 JPA ( Java Persistence API ) Java에서 제공하는 API, 관계형 데이터베이스 모델과 객체 모델간의 패러다임 불일치를 해결해주는 ORM 기술에 대한 표준 명세 Java 에서 JPA에게 명령하면 JPA가 JDBC API를 사용하여 SQL을 만들어서 DB로 보내주는것이다. 스프링에서 제공하는 것이 아니다. JAVA에서 제공하는것이다. 라이브러리가 아닌 인터페이스이다. 영속성이란? 더보기 영속성(Persistence) : 데이터를 생성한 프로그램이 종료되더라도 사라지지 않는 데이터의 특성 ORM ( Object-relational mapping ) 객체와 관계형 데이터베이스의 데이터를 .. 더보기 [JAVA] 자바 쓰레드 ( Java Thread ) 쓰레드 ( Thread ) : 프로그램을 실행시켜 동작하고 있는것 (직렬적이다.) 하나의 프로세스를 동시에 처리하는 것 처럼 보이지만, 사실으 매우 짧은 단위의 시간으로 분할하여 차례로 처리되고있는것이다. - 프로그램 : 프로그래밍 언어로 구성된 소스코드로 만든 것. - 프로세스 : 메모리를 할당받아 실행 중인 프로그램. 멀티 쓰레드(분업) : 여러개의 경로를 가질 수 있게 한다.(병렬적이다.) 한 개의 처리경로를 여러개로 나누어 동시 작업이 가능하다. - 교착상태 : 멀티 쓰레드 중 쓰레드간의 대기 상태가 종료되지 않아 무한정 대기만 하는 비정상적인 상태 (오라클 DB는 교착 상태에 빠지면 60초를 기준으로 교착상태를 판단하여 자동으로 재시작 혹은 일부를 끊는다. * 해결방안 : 조건문 등을 이용해 교.. 더보기 [JAVA] 자바 해쉬 맵 ( Java HashMap ) HashMap : Map 인터페이스의 한 종류로써 Key와 Value 값으로 데이터를 저장하는 형태. (검색에 용이하다.) [Key,Value] 한쌍 Key는 중복이 불가능하다. (Set) [ 중복된 key값을 입력하게 될경우 이전의 key값이 사라지고 최근입력된 key값으로 덮어씌어진다.] Value는 중복이 가능하다. (Collection) key | hashtable | value ┗ key와 value는 서로 hashtable 을 거친다. Map 자료구조는 순서를 따지지 않기 때문에 Set으로 묶은 후 Iterator를 통해 순서를 부여받아서 나와야한다. 사용방법 ) : HashMap 객체명 = new HashMap(); HashMap 객체명 = new HashMap(용량);.. 더보기 [JAVA] 자바 리스트 앤 셋 ( Java List And Set ) List And Set : Set은 검색에 목적이 있기 때문에 순서 정보를 관리할 필요가 없어 데이터 크기에 상관없이 검색에 걸리는 시간이 매우 짧다. 반면, List는 index를 관리해야 하기 때문에 시간이 오래 걸린다. 그러므로 기능적 차이가 없다면 HashSet을 써야한다. (검색만을 위한 기능이 필요하다면 List보다는 Set을 쓰는 것이 유리하다.) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 public class ListAndSet { public static void main(String[] args) { final int SIZE = 10_000_000; final List arrayList = n.. 더보기 [JAVA] 자바 컬렉션 프레임워크(Collection Framework) 컬렉션 프레임워크(Collection Framework : 많은 데이터를 쉽고 효과적으로 관리 할 수 있는 표준화된 방법을 제공하는 클래스의 집합 1. List implements Collection : 순서가 있는 데이터의 집합으로, 데이터의 중복을 허용한다. = Vector, ArrayList, LinkedList, Stack, Queue 등 2. Set implements Collection : 순서가 없는 데이터의 집합으로, 데이터의 중복을 허용하지 않는다. = HashSet, TreeSet 등 3. Map : 키(Key)와 값(Value)의 한 쌍으로 이루어진 데이;터의 집합으로 순서가 없다. 키는 중복을 허용하지 않지만 값은 중복될 수 있다. ex) 우편번호, 지역번호(전화번호) = HashM.. 더보기 [JAVA] 자바 제네릭(Generic) 제네릭(Generic) : 제네릭의 사전적 용어를 찾아보면 ( 포괄적인, 총칭의 ) 라는 뜻을 가진 단어이다. java에서는 클래스에서 사용할 타입을 클래스 외부에서 설정하는 기법을 의미한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 public class GTest { private T data; public T getData() { return data; } public void setData(T data) { this.data = data; } } cs 위와 같은 방법으로 사용되며, T는 보통 Type을 뜻한다. E - Element K - Key N - Number T - type V - Value 1. Generic Class : 클래스 내부에서 사용될 자료형을 지정한다. 괄호안엔 .. 더보기 이전 1 2 3 다음