JAVA

· JAVA
JVM(Java Virtual Machine) 자바 가상 머신으로 자바 바이트 코드를 실행할 수 있는 주체 CPU나 운영체제(플랫폼)의 종류와 무관하게 실행이 가능 자바 코드를 컴파일해서 얻은 바이트 코드를 해당 운영체제가 이해할 수 있는 기계어로 바꿔 실행 시켜주는 역할 Class Loader 자바에서 소스를 작성 -> Item.java처럼 .java 파일이 생성 .java 소스코드를 자바 컴파일러가 컴파일 -> Item.class 같은 .class파일(바이트코드)가 생성 생성된 클래스 파일들을 엮어서 JVM이 운영체제로부터 할당받은 메모리영역인 Runtime Data Area로 적재하는 역할을 Class Loader가 수행 Execution Engine Class Loader에 의해 메모리에 적재되 ..
· JAVA
자바 설치 아래의 URL에서 필요한 JAVA 버전 다운로드 https://www.oracle.com/java/technologies/javase-downloads.html\ 자바 환경 변수 설정 내 PC 우 클릭> 속성 > 고급 시스템 설정 > 환경 변수로 이동 시스템 변수 새로 만들기 변수 이름 : JAVA_HOME, 변수 값 : 다운로드받은 Open-JDK 경로 입력 후 확인버튼 클릭 ( ex : C:\Program Files\Java\jdk1.8.0_202 ) 변수 이름 : CLASSPATH, 변수 값 : %JAVA_HOME%\bin Path 시스템 변수 편집 새로만들기 > %JAVA_HOME%\bin 입력 > 확인 버튼 클릭 환경 변수창의 확인 버튼을 누른 후 시스템 창을 닫는다. 자바 버전 변경..
· JAVA
컬렉션 프레임워크 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것 자바에서 제공하는 Collection은 크게 3가지 인터페이스로 나뉘어짐, List(리스트), Queue(큐), Set(집합) 아래의 그림에는 없지만 Map(맵) 인터페이스도 제공하고있다 List(리스트) 대표적인 선형 자료구조 주로 순서가 있는 데이터를 목록으로 이용할 수 있도록 만들어진 인터페이스 같은 요소의 중복 저장을 허용 List Interface를 구현하는 클래스 ArrayList LinkedList Vector Stack List Interface에 선언된 대표적인 메소드 Queue(큐)..
· JAVA
람다식 Java SE 8에서 새로 도입 함수를 하나의 식(expression)으로 표현한 것 익명 함수(Anonymous functions)를 지칭하는 용어 익명함수(Anonymous Function)란 함수의 이름이 없는 함수로, 익명함수들은 모두 일급 객체 기존의 불필요한 코드를 최소화하고 가독성을 높인다. 기존 메소드 생성 반환티입 메소드명 (매개변수, ...) { 실행문 } int multiply(int x, int y){ return x * y; } (x,y) -> x * y 람다식 생성 (매개변수, ... ) -> { 실행문 ... } (x,y) -> x * y 람다식 장단점 장점 코드의 간결성 - 람다를 사용하면 불필요한 반복문의 삭제가 가능하며 복잡한 식을 단순하게 표현 지연연산 수행 - ..
· JAVA
ex) FileExample5 package kr.ac.daegu.bsy; import java.io.ByteArrayOutputStream; import java.io.IOException; public class ByteArrayOutStreamTest { public static void main(String[] args) { System.out.println("FileExample5"); // p.487 ~ p.488 String msg = "ByteArrayOuter test"; ByteArrayOutputStream bao = null; try{ bao = new ByteArrayOutputStream(); bao.write(msg.getBytes()); System.out.println("b..
· JAVA
File 자바에서 파일이나 디렉터리를 다룰 수 있도록 제공해주는 클래스 File 클래스에서 제공되는 주요 생성자,메소드는 p470 ~ p471 참고 ex) FileExample 이 예제를 실행하기 위해 C: 아래에 data 디렉터리를 생성해야한다 package kr.ac.daegu.bsy; import java.io.File; import java.io.FilenameFilter; import java.io.IOException; import java.util.Scanner; public class FileTest1 { // 확장자가 ".jpg"로 끝나는 파일 이름을 필터링해주는 클래스 public static class ImageNameFilter implements FilenameFilter{ @Ov..
· JAVA
main.java package kr.ac.daegu.bsy; import java.time.LocalDate; import java.time.LocalDateTime; public class Main { public static void main(String[] args) { System.out.println("DateTimePractice"); // 현재 날짜 출력 LocalDate currentDate = LocalDate.now(); System.out.println(currentDate); // 날짜를 직접 지정해서 출력 LocalDate targetDate = LocalDate.of(2021,8,11); System.out.println(targetDate); // 현재 시간 출력 LocalD..
· JAVA
인터페이스 특정 형태의 클래스들이 사용할 수 있는 메소드 명세를 정의하는 단위 추상 클래스와 비슷한 기능을 제공 추상 클래스 : 일반 변수, 일반 메소드 정의 가능 인터페이스 : 오직 상수나 추상 메소드만 정의 가능 Business.java package kr.ac.daegu.bsy; class OracleConnector implements Connector{ @Override public void connect(){ System.out.println("Oracle 연결됨"); } } class MySQLConnector implements Connector { @Override public void connect() { System.out.println("mySQL 연결됨"); } } class Co..
· JAVA
생성자 this() 자기 자신 클래스의 다른 생성자를 호출하기 위해 사용되는 생성자 코드의 간결성(중복코드 제거를 위해 사용) House.java package kr.ac.daegu.bsy; class House { int price; String dong; int size; String kind; public House(){ //System.out.println(this보다 앞에서 실행"); this(100,32,"상계동","아파트"); } public House(int price){ this(price,32,"상계동","아파트"); } public House(int price,int size){ this(price,size,"상계동","아파트"); } public House(int price,int ..
BSYeop
'JAVA' 카테고리의 글 목록