📃 요약
자바는 웹 프로그램을 개발하는데 특화된 컴파일 언어이자 벡엔드 개발 전문 언어임. 플랫폼에 독립적이라서 어떤 운영체제(OS)에서도 실행이 가능하며 가상머신을 통해 실행됨
요소 기술 :
Basic : 자바
📃 기술 구현
스펙 :
intellij java
📃 자바API
자바에서 코딩시에 활용할 수 있는 유용한 함수를 제공함. 이것을 API 함수라고 함
1) Object 클래스 :
- 자바의 최상위 부모 클래스, 모든 자바 객체에서 사용가능( 자동 상속되고, extends 키워드는 생략됨 ),
- 기본적인 함수들이 있음(.equals(), .hashCode(), .toString() 등)
2) System 클래스 :
- 운영체제의(Windows, Mac, Linux) 일부 기능을 이용할 수 있음.
- 프로그램 종료, 키보드로부터 입력, 모니터로 출력, 현재 시간 읽기 등이 가능, System 클래스의 모든 속성 및 함수는 공유됨(정적 , 전역임)
ExitApplication.java
public class ExitApplication { public static void main(String[] args) { for (int i = 0; i <10; i++) { if(i==5) { // break; // 반복문 중단 System.exit(i); // 프로그램 강제 종료(kill) , 밑에 코드가 실행안됨 } } System.out.println("마무리코드"); // 실행 안됨 } }
3) Class 클래스 :
- 클래스와 인터페이스의 메타 데이터를 Class 클래스로 관리함.
- 메타 데이터 : 클래스의 이름, 생성자 정보, 속성 정보, 함수 정보 등을 말함
CarApplication.java
public class CarApplication { public static void main(String[] args) { // Class : 자바에서 Class의 정보가(패키지명, 클래스명, 경로명 등) 있는 객체 Class clazz = Car.class; // 클래스 파일 이름 // 클래스의 다양한 정보 보기 System.out.println(clazz.getPackage().getName()); // 패키지 정보 보기 System.out.println(clazz.getName()); // 패키지명 + 클래스명 정보가 출력됨(풀클래스명) System.out.println(clazz.getSimpleName()); // 패키지명제외한 클래스명 출력됨 } }
4) String 클래스 :
- 문자열 조작을 위한 많은 함수를 가지고 있음
(1) .charAt(인덱스번호)
문자열.charAt(인덱스번호) : 인덱스번호에 해당하는 한문자를 가져오는 함수
StringCharAtApplication.java
public class StringCharAtApplication { public static void main(String[] args) { // 주민번호 String ssn = "010624-1230123"; // 문자열.charAt(인덱스번호) : 인덱스번호에 해당하는 한문자를 가져오는 함수 char gender = ssn.charAt(7); // '1' 문자 switch (gender) { case '1': case '3': System.out.println("남자입니다."); break; case '2': case '4': System.out.println("여자입니다."); break; } } }
(2) .charAt(인덱스번호)
변수 = 문자열.indexOf(문자열) : 매개변수값으로 주어진 문자열이 시작되는 인덱스를 리턴하는 함수
IndexOfApplication.java
public class IndexOfApplication { public static void main(String[] args) { String subject = "자바 프로그래밍"; // indexOf(문자열) : 매개변수값으로 주어진 문자열이 시작되는 인덱스를 리턴하는 함수 int location = subject.indexOf("프로그래밍"); System.out.println(location); // 문자열이 없으면 -1 리턴 if(subject.indexOf("자바") != -1) { System.out.println("자바와 관련된 책이군요"); } else { System.out.println("자바와 관련이 없군요"); } } }
(3) .length()
변수 = 문자열.length() : 문자열 길이 리턴
LengthApplication.java
public class LengthApplication { public static void main(String[] args) { String ssn = "7306241230123"; // 주민번호 13자리 int length = ssn.length(); // 문자열 길이 리턴 if(length == 13) { System.out.println("주민번호 자리수가 맞습니다.."); } else { System.out.println("주민번호 자리수가 틀립니다."); } } }
(4) .replace(문자열, 문자열2)
변수 = 문자열.replace(문자열, 문자열2) : 문자열을 문자열2로 바꿈(대체)
ReplaceApplication.java
public class ReplaceApplication { public static void main(String[] args) { // API : 유용한 함수들의 묶음 String oldStr = "자바는 객체지향언어입니다. 자바는 풍부한 API도 지원합니다."; String newStr = oldStr.replace("자바", "JAVA"); System.out.println(oldStr); System.out.println(newStr); } }
(5) .substring(시작인덱스번호, 끝인덱스번호)
변수 = 문자열.replace(시작인덱스번호, 끝인덱스번호) : 시작인덱스번호 ~ (끝인덱스번호-1) 사이의 문자 자르기
SubStringApplication.java
public class SubStringApplication { public static void main(String[] args) { String ssn = "880815-1234567"; String firstNum = ssn.substring(0, 6); // 인덱스번호 : 0 ~ (6-1)사이의 문자 자르기 System.out.println(firstNum); // 사용법 : 문자열.substring(시작인덱스, [끝인덱스]) // 시작인덱스 ~ (끝인덱스-1)까지 문자열 자르기 String secondNum = ssn.substring(7); // 매개변수 1개 넣으면 문자열 끝까지 자름 System.out.println(secondNum); } }
(6) .trim()
변수 = 문자열.trim() : 앞/뒤 공백 제거
TrimApplication.java
public class TrimApplication { public static void main(String[] args) { // trim() : 앞/뒤 공백 제거, 문자열 중간에 공백은 제거안됨(ex: "12 34") String tel = " 02"; String tel2 = "123 "; String tel3 = " 1234 "; String telsum = tel.trim() + tel2.trim() + tel3.trim(); System.out.println(telsum); } }
5) Math 클래스 :
- 수학 계산에 사용할 수 있는 함수를 제공하며, Math 클래스가 제공하는 함수는 모두 공유 함
(1) Math.abs(숫자)
Math.abs(숫자) : 절대값 구하기(음수 -> 양수)
// Math.abs(숫자) : 절대값 구하기(음수 -> 양수) int v1 = Math.abs(-5); double v2 = Math.abs(-3.14); System.out.println("v1= " + v1); System.out.println("v2= " + v2);
(2) Math.ceil(실수) / Math.floor(실수) / Math.round(실수)
Math.ceil(실수) : 수학에서 소수점 올림 함수(첫째자리만 가능) Math.floor(실수) : 수학에서 소수점 내림 함수(첫째자리만 가능) Math.round(실수) : 실수 반올림(첫째자리만 가능)
// Math.ceil(실수) : 수학에서 소수점 올림 함수 double v3 = Math.ceil(5.3); // 6 double v4 = Math.ceil(-5.3); // -5 System.out.println("v3=" + v3); System.out.println("v4=" + v4); // Math.floor(실수) : 수학에서 소수점 내림 함수 double v5 = Math.floor(5.3); // 5 double v6 = Math.floor(-5.3); // -6 System.out.println("v5=" + v5); System.out.println("v6=" + v6); // 실수 반올림(첫째자리만 가능) long v14 = Math.round(5.3); // 5 long v15 = Math.round(5.7); // 6 System.out.println("v14=" + v14); System.out.println("v15=" + v15);
(3) Math.max(숫자1, 숫자2) / Math.min(숫자1, 숫자2)
Math.max(숫자1, 숫자2) : 두수의 최대값 구하기 Math.min(숫자1, 숫자2) : 두수의 최소값 구하기
// Math.max(숫자1, 숫자2) : 두수의 최대값 구하기 int v7 = Math.max(5,9); // 9 double v8 = Math.max(5.3, 2.5); // 5.3 System.out.println("v7=" + v7); System.out.println("v8=" + v8); // Math.min(숫자1, 숫자2) : 두수의 최소값 구하기 int v9 = Math.min(5,9); // 5 double v10 = Math.min(5.3, 2.5); // 2.5 System.out.println("v9=" + v9); System.out.println("v10=" + v10);
(4) Math.random()
Math.random() : 아무 숫자( 0 <= x < 1 )
// Math.random() : 아무 숫자( 0 <= x < 1 ) double v11 = Math.random(); System.out.println("v11=" + v11);