01. Java (v)
02. git
03. Database
04. Jsp [Server]
05. 미니프로젝트 (3W)
06. HTML,CSS
07. JS
08. SpringFramework , SrpingBoot
09. React JS [Front-end]
10. 중간프로젝트 (1M)
11. Linux 명령어
12. AWS 클라우드
13. DevOps - Docker
14. App - Android
15. 최종프로젝트 (1M)
클래스를 선언할 떄 extends 키워드로 다른 클래스를 상속하지 않으면 묵시적으로 Object클래스를 상속
모든 클래스가 Object를 상속하기 떄문에 Object의 메서드는 모든 클래스에서 사용 가능
주요 메서드
/*
* 오브젝트 클래스
* toString - 객체의 주소를 문자열로 반환
* equals - 객체의 주소값을 비교해서, 같은 객체라면 true 반환
* hashCode - 객체의 값을 고유한 숫자로 반환
* getClass - 현재 실행되는 클래스를 반환
* clone(protected) - 객체 복사
* finalize - 객체가 소멸될 때 동작 (정확한 시점을 알기가 어렵다.)
*/
Person p = new Person("홍길동");
String s = p.toString();
System.out.println(s);
Person p2 = new Person("홍길동");
boolean r = p.equals(p2);
System.out.println("이름이 같음? " + r);
System.out.println("객체의 고유한 숫자값:"+p.hashCode());
System.out.println("현재 실행되는 객체를 반환 :"+p.getClass());
//
try {
Person clonePerson = (Person)p.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
// finalize
p=null;
System.gc();
운영체제의 일부 기능 이용 가능
프로그램의 종료, 키보드로 입력, 모니터로 출력, 메모리 정리, 현재 시간 읽기 등이 가능
주요 메서드
// 다양한 운영체제의 정보를 확인할 수 있다.
// Properties properties = System.getProperties();
// System.out.println(properties);
/*
* 1970/1/1 부터 지금까지 시간을 밀리초로 반환
*/
long start = System.currentTimeMillis();
long sum=0;
for(long i=1;i<=10000000000L;i++) {
sum+=i;
}
long end =System.currentTimeMillis();
System.out.println("실행소요시간:"+(end-start)*0.001+"초");
System.exit(1); // 프로그램 종료
생성자를 사용해 객체를 만들 필요 없이 기초 데이터를 사용할 때처럼 바로 초기화해서 사용 가능
주요 메서드
String str = new String(new char[] {'h','e','l','l','o'});
System.out.println(str);
// 문자열 자르기
char a = str.charAt(0);
System.out.println(a);
// 문자열 길이
int n = str.length();
System.out.println(n);
// 문자열 찾기
System.out.println("문자열 찾은 위치: "+ str.indexOf("l"));
System.out.println("문자열을 3번 인덱스부터 찾은 위치:"+str.indexOf("l",3));
System.out.println("문자열을 뒤에서부터 찾은 위치:"+str.lastIndexOf("l"));
System.out.println("찾는 문자가 없으면 : "+str.indexOf("야")); //찾는 문자 없으면 -1 반환
// 문자열 변경
String b = "안녕하세요? 문자열은 문자의 합 입니다";
String r2= b.replace("문자","word"); // 타켓문자, 바꿀문자
System.out.println(r2); // 새로운 문자열을 반환
System.out.println(b); // 원본 문자는 그대로
// 원본 문자 변경
b = b.replace("문자", "word");
System.out.println(b);
b= b.replace(" ","");
System.out.println(b);
// 대소문자 변경
String c = "abcDEF";
System.out.println(c.toUpperCase());
System.out.println(c.toLowerCase());
// 앞뒤 공백 제거 trim
String d = " 오늘은 월요일 입니다 ";
System.out.println(d.trim());
// 문자열 자르기 substring
String e = "자바칩 프라푸 치노";
System.out.println(e.substring(4)); // 4미만 절삭
System.out.println(e.substring(0,3)); // 0이상 3미만 추출
// 문자열 비교
System.out.println("홍길동".equals("홍길동"));
System.out.println("홍길동".compareTo("홍길자")); // 음수가 나오면, 뒤에 있는 글자가 사전적으로 뒤에 있음
System.out.println("홍길동".compareTo("홍길동")); // 같은 문자열
System.out.println("홍길자".compareTo("홍길동")); // 양수가 나오면, 앞에 글자가 사전적으로 뒤에 있음
// 문자열 자르기 split()
String f = "010-1234-5678";
String[] arr = f.split("-");
System.out.println(Arrays.toString(arr));
String[] arr2 = f.split(" ");
System.out.println(Arrays.toString(arr2));
// 문자열 자르기 toCharArray
char[] arr3 = f.toCharArray();
System.out.println(Arrays.toString(arr3));
// 문자열 합치기
String r = String.join("->", "java","is","cool");
System.out.println(r);
String 클래스는 아주 많이 쓰이고 좋은 기능들을 많이 가지고 있지만 메모리를 과소비한다는 문제점이 있음
String객체는 처음 초기화된 데이터에 변화가 생기면 기존 객체를 재활용하지 않고 새로운 객체 생성
String 클래스의 새로운 객체를 생성하는 문제로 인해 속도가 느려지는 현상이 발생하기 때문에 이 문제를 해결 하기 위해 속도적인 측면에서 개선된 클래스
주요 메서드
// 빠른 문자열
String str = new String("java");
StringBuilder sb = new StringBuilder();
sb.append(str);
System.out.println(str);
System.out.println(sb);
str = str+" programming"; // 완전 새로운 문자열을 만들어서 저장
sb.append(" programming");
// 문자열 중간에 추가 insert
sb.insert(5,"book ");
System.out.println(sb);
// 문자열의 변경
sb.replace(5, 9, "책");
System.out.println(sb);
// 문자열 삭제 delete
sb.delete(5, 7); // 5이상 7미만 인덱스 삭제
System.out.println(sb);
// 빠른 문자열을 > 문자열로 변환
sb.toString();
System.out.println("문자열:"+sb);
// 문자열 뒤집기
sb.reverse();
System.out.println(sb);
// 스트링과 스트링 빌더의 시간차이
long start = System.currentTimeMillis();
// 문자열 더하기 30만번
String str ="";
for(int i=0;i<=300000;i++) {
str+="a";
}
long end = System.currentTimeMillis();
System.out.println("수행시간 :"+(end-start)*0.001);
long start1 = System.currentTimeMillis();
// 문자열 더하기 30만번
StringBuilder sb=new StringBuilder();
for(int i=0;i<=300000;i++) {
sb.append("a");
}
long end1 = System.currentTimeMillis();
System.out.println("수행시간 :"+(end1-start1)*0.001);