Java 34

Java 파일 조작 (File Handling)

1. 파일/디렉토리 생성, 제거파일 디렉토리 조작은 File 클래스 또는 Files 클래스로 한다.1.1. 파일/디렉토리 생성디렉토리 생성import java.io.File;File fileObj = new File("a/b/c/d");if(fileObj.mkdirs()) System.out.println("mkdir success");else System.out.println("failed");mkdir()로 디렉토리 생성이 가능하지만, mkdirs()는 생성하려는 디렉토리의 부모 디렉토리가 없다면 같이 생성해준다. 파일 생성import java.io.File;import java.io.IOException;class Main { public static void main(String[..

Java 2024.09.23

Java 예외 처리 (Exception, try catch)

프로그래밍 오류의 종류는 논리적 에러 (Logical Error), 컴파일 에러 (Compillation Error), 런타임 에러 (Runtime Error)가 있다. 논리적 에러 (Logical Error): 실행은 되지만 의도와 다르게 동작하는 것컴파일 에러 (Compillation Error): 컴파일시에 발생하는 에러 런타임 에러 (Runtime Error): 실행중에 발생하는 에러 Java에서는 런타임 에러는 에러(error)와 예외(exception) 두가지로 구분한다.에러(error): 프로그램 코드에 의해서 수습될 수 없는 심각한 에러예외(exception): 프로그램 코드에 의해서 수습될 수 있는 미약한 에러 에러(error)는 JVM에 문제가 생긴 것으로 개발자가 대처할 방법이 없다...

Java 2024.09.21

Java Regular Expressions (정규 표현식)

1. Pattern.compile()로 패턴 객체 생성import java.util.regex.Pattern;Pattern pattern1 = Pattern.compile("[a-z]+");Pattern pattern2 = Pattern.compile("[a-z]+", Pattern.CASE_INSENSITIVE);Pattern pattern3 = Pattern.compile("(?i)[a-z]+");Pattern.compile(String regex) 또는 Pattern.compile(String regex, int flags)로 패턴 객체를 생성한다.플래그는 compile메소드의 두번째 인자에 속성값을 전달하는 방법이 있고, 문자열에 기호로 전달하는 방법이 있다. 기호로 전달할 때는 문자열 맨 앞에 ..

Java 2024.09.20

Java 콘솔 입출력 (console output & input)

1. output1.1. System.outSystem.out.print()개행 없이 출력한다System.out.println()출력 후 개행까지 출력한다System.out.printf()주어진 포맷에 맞추어 출력한다2. input2.1. Scanner불러오기 & 선언import java.util.Scanner;Scanner sc = new Scanner(System.in); 반환 타입메소드설명Stringnext()다음 토큰을 읽어 문자열로 반환StringnextLine()한 라인을 반환. 라인 분리기는 제외한다booleannextBoolean()다음 토큰을 읽어 boolean값으로 반환bytenextByte()다음 토큰을 읽어 byte값으로 반환doublenextDouble()다음 토큰을 읽어 doub..

Java 2024.09.19

Java 자료구조 클래스 (Data Structure Classes)

IteratorArrayList, ArrayDeque, LinkedList 등 Iterable을 구현하는 클래스들은 Iterator를 사용할 수 있다.Iterator는 collection을 순환하기 위해 만들어졌다.메소드설명hasNext()반복자에 다음 요소가 있는지 없는지next()반복자의 다음 요소 반환remove()next()에 반환된 마지막 요소 삭제예시class Main { public static void main(String[] args) { ArrayList arr = new ArrayList(); for (int i = 0; i it = arr.iterator(); while (it.hasNext()) { Double d =..

Java 2024.09.14

Java Class

Java는 모든 것이 Class나 객체와 연관되어있다.  class 정의:modifier class ClassName { //attributes //constructor //methods}class이름은 모든 단어의 첫 글자를 대문자로 한다. class를 위한 access modifier는 public과 default가 있다.public - 클래스는 다른 클래스에 의해 접근 가능하다default - 클래스는 같은 패키지 안에 있는 클래스들에 의해서만 접근 가능하다. modifier를 지정하지 않았을 때 사용된다.class를 위한 non-access modifier는 final과 abstract가 있다.final - 클래스는 다른 클래스에 의해 상속받아질 수 없다.abstract - 클래스..

Java 2024.09.07

Java 연산자 우선순위 (Operator Precedence in Java)

순위연산자설명결합방향1()[]new.::괄호배열 접근객체 생성멤버 접근메소드 참조→2++--단항 후위증가(post-increment)단항 후위감소(post-decrement)→3+-!~++--단항 더하기단항 부정단항 논리 NOT단항 비트단위 NOT단항 전위증가(pre-increment)단항 전위감소(pre-decrement)←4()캐스트←5* / %곱셈 나눗셈 나머지연산→6+ -+더하기, 빼기문자열 연결시키기→7>>>>shift→8> >=instanceof상관적인→9==!=같은지→10&비트단위 AND→11^비트단위 XOR→12|비트단위 OR→13&&논리적 AND→14||논리적 OR→15? :3항 연산자←16= += -=*= /= %=&= ^= |=>= >>>=할당←17->->람다 표현스위치 표현← 참조:..

Java 2024.09.06

Java 자료형 (Java Data Types)

1. 원시적인 데이터 타입 (Primitive Data Types)원시적인 데이터 타입은 사이즈와 변수 값의 타입을 명시하고, 메소드가 없다.데이터 타입사이즈선언설명byte1 바이트byte num = 100;-128 ~ 127 정수 저장short2 바이트short num = 5000;-32,768 ~ 32,767 정수 저장int4 바이트int num = 100000;-2,147,483,648 ~ 2,147,483,647 정수 저장long8 바이트long num = 15000000000L;-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 정수 저장float4 바이트float num = 5.75f;실수를 저장한다. 소수점 6~7자리를 저장하기에 충분함doubl..

Java 2024.09.06

Java 기본 문법

java에서 실행되는 모든 코드는 class내부에 있어야 한다.그리고 class의 첫번째 문자는 항상 대문자여야 한다. java파일 이름과 class이름은 항상 일치하여야 한다. 파일을 저장할 때, class이름에 .java를 붙여 파일 이름을 정한다. 모든 java프로그램은 main()메소드가 필요하다. main()메소드가 실행되는것이다.1. 주석한 라인을 주석 처리할 때는 //여러 라인을 주석 처리할 때는 /* */를 사용한다.public class Main { public static void main(String[] args) { /*오늘의 날씨 여러 라인에 걸처 출력한다.*/ System.out.println("today"); System.out..

Java 2024.09.06

Java Platform

자바 플랫폼은 자바 프로그래밍 언어로 쓰여진 프로그램들을 개발하고 실행하는것을 가능하게 하는 프로그램들의 세트이다. 자바 플랫폼은 (가상머신이라 불리는)실행 엔진, 컴파일러와 라이브러리 집합을 포함한다. 자바 플랫폼은 자바 프로그램이 다양한 하드웨어와 운영체제에서 동일하게 실행시키게 할 셈으로 그것들을 위해 구현되었다. 자바 플랫폼은 전체 능력의 일부분을 제공하는 각각의 프로그램들로 구성되어있다. 예를 들어 자바 코드를 자바 바이트코드로 바꿔주는 자바 컴파일러는 JDK의 부분으로서 제공된다. JVM을 JIT컴파일러로 보완하는 JRE는 중간의 바이트코드를 즉석에서 네이티브 머신 코드로 바꾼다. 자바 플랫폼은 광범위한 라이브러리 집합도 포함한다. 플랫폼에서 필수적인 요소는 자바 언어 컴파일러, 라이브러리들,..

Java 2024.09.06

Java 설치, 실행

1. Java platform 설치1.1. Ubuntu에 설치apt search openjdk-.*-jdk-headless를 쳐보면 설치할 수 있는 jdk의 리스트들을 보여준다.원하는 버전을 설치한다.https://www.oracle.com/java/technologies/ 을 보면 현재 LTS인 버전을 볼 수 있다. 웬만하면 LTS버전을 설치하자.java --version을 입력해 잘 설치되었는지 확인한다.설치하면 java와 javac명령을 어디에서든 사용 가능하다. /usr/bin에 실행 파일이 저장되어있는데, PATH에 /usr/bin이 있어 따로 환경변수 설정을 하지 않아도 된다.1.2. Windows에 설치powershell에 java와  javac를 입력하면 실행되지 않는다.Oracle 홈페이..

Java 2024.09.05

jsp와 java beans

빈즈는 form태그에서 전달한것을 쉽게 처리하기 위해 있는 것이다. 1. 빈즈 클래스 구조 class xxxBean { // 멤버변수 : 데이터베이스 테이블의 칼럼 이름과 매칭된다. private String xxx; // get, set 메서드 : 멤버변수와 매칭된다. public String getXxx() { return xxx; } public setXxx(String xxx) { this.xxx = xxx; } } 2. 빈즈 액션 액션 사용 예 기능 useBean xx패키지의 MyBean 클래스를 cls라는 이름으로 page 번위에서 사용할 것을 선언한다. setProperty useBean으로 선언된 빈즈 클래스의 setxxx()메서드를 호출한다. getProperty useBean으로 선언된..

Java/jdbc 2022.05.26

jsp 내장객체 (request, response, out, session 등)

jsp 내장객체는 jsp내에서 선언하지 않고도 사용할 수 있는 객체이다. 1. request 내장객체 request는 사용자가 요청한 정보를 처리하기 위한 변수이다. 메소드 설명 getParameter(name) 문자열 name과 이름이 같은 매개변수의 값을 가져온다 getParameterValues(name) 문자열 name과 이름이 같은 매개변수의 값을 배열 형태로 가져온다. getCookies() 모든 쿠키 값을 javax.servlet.http.Cookie의 배열 형태로 가져온다. getMethod() 현재 요청이 get이나 post형태로 가져온다 getRemoteAddr() 클라이언트의 ip주소를 알려준다.. getProtocol() 현재 서버의 프로토콜을 문자열 형태로 알려준다. 2. resp..

Java/jdbc 2022.05.19

JSP 기본문법 (주석, 지시어, 액션, 선언과 표현식, 스크립트릿)

1. 주석 형태: html주석 jsp주석 2. 지시어 형태: page지시어 현재 JSP 페이지를 컨테이너에서 처리하는 데 필요한 각종 속성을 기술하는 부분 include 지시어 현재 JSP 파일에 다른 HTML이나 JSP 문서를 포함하기 위한 기능을 제공 taglib 지시어 JSP 기능을 확장하기 위해 만들어진 커스텀 태그 라이브러리를 사용하기 위한 지시어 3. 액션 형태: JSP 액션은 JSP 고유 기능으로 빈즈 클래스 연동 및 동적 페이지 관리를 위한 기능을 제공함. 액션 사용 예 기능 include 다른 페이지를 현재 페이지에 포함시킨다. forward 현재 페이지의 제어를 다른 페이지로 전달한다. useBean xx패키지의 MyBean 클래스를 cls라는 이름으로 page 번위에서 사용할 것을 선..

Java/jdbc 2022.05.12

서블릿, JSP

서블릿 처음에는 서블릿이라는 것을 이용해 java jdbc 웹 개발을 해왔다. 하지만 점점 할것이 많아지고 복잡해 짐에 따라 jsp같은 형태를 이용한다. out.println으로 response할 텍스트를 전달하고, System.out.println으로 로그를 남긴다. 서블릿 컨테이너 jsp와 파일을 처리할 수 있다. 지시어와 꺽새 등을 처리할 수 있다. jsp파일을 실행 가능한 서블릿을 이용한 java파일로 만들고 컴파일해서 class파일도 만들어 실행시킨다. 아파치 톰캣은 내부적으로 java파일과 class파일은 " c:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\jspbook\org..

Java/jdbc 2022.05.12

각종 에러들

이클립스를 실행할 때 현재 파일을 실행시키지 않고 최근 프로젝트를 실행시킬 때. window - preference - run/debug - launching - launch operation에서 launch the associated project를 선택한다. 참고: https://all-record.tistory.com/11 tomcat load driver 오류 톰캣을 설치후 jsp같은 파일에서 mysql과 연동이 안될 수 있다. 이때는 mysql-connector-java-8.0.29.jar를 C:\Program Files\Apache Software Foundation\Tomcat 9.0\lib 경로에 넣어주면 된다. The server cannot be started because one or..

Java/jdbc 2022.05.10