프로세스 (Process) - 프로그램을 실행하여 메모리에 로딩된 상태 (= 실행 중인 프로그램) - 멀티태스킹 (Multi Tasking) => 프로세스가 여러 개 일때 해당 프로세스들이 동시에 수행되는 것처럼 보이는 것으로 정확히는 CPU가 빠른 속도로 프로세스들을 번갈아가며 처리한다. 쓰레드 (Thread) - 프로세스 내에서 작업의 최소 단위로 하나의 프로세스 내에 쓰레드 한 개 (= Single Thread)일 때, 해당 프로세스 내에서 동시에 수행 가능한 작업은 단 하나 뿐이다. - 하나의 프로세스 내에서 동시에 수행 가능한 작업을 늘리려면 멀티 쓰레딩을 구현 해야한다! ex) 메신저에서 파일 전송과 함께 메세지 송신, 수신을 동시에 수행하는 것 기본 프로그램의 경우(쓰레드 적용x) packa..
선택자 { 속성:속성값; } External CSS - 외부방식 hello.html hello hello.css #hello { color: blue; } 사용하는 데 가장 효율적. CSS 최대 장점! 스타일 소스를 독립된 파일(*. ) 로 만들고 웹문서와 연결시켜 적용한다. 하나의 스타일 파일로 여러 웹문서를 동시에 같은 스타일로 적용하거나 수정이 가능하다. Internal CSS - 내장방식 스타일 소스를 웹문서의 head 영역에 적용한다. 해당 문서에만 적용된다. hello Inline CSS - 인라인 방식 웹문서 body영역의 해당 태그 뒤에 직접 적용한다. hello 소스가 길어지고 통일성이 떨어지며 유지보수에도 불리하다. 가장 추천하지 않는 방식이나, 적용우선순위가 가장 높다. 작업 환경상 ..
StringBuilder & StringBuffer List-A V L array&vector 비슷한데 vector 멀티쓰레드 - StringBuffer : 문자열이 안전하게 변경되도록 보장한다. - StringBuilder : 문자열이 안전하게 변경되도록 보장하지 않는다. (멀티 쓰레드 프로그램이 아니라면 StringBuilder 속도가 좀더 빠르다) identityHashCode 인스턴스가 처음 생성되었을 때 메모리 주소 String javaStr = new String("Java"); System.out.println("javaStr 문자열 주소 : " + System.identityHashCode(javaStr)); 문자열을 추가해보자! buffer.append(" and"); buffer.app..
멤버의 정보를 넣어두는 용도로 memberDTO를 사용한다. package member; import java.sql.Timestamp; public class MemberDTO { // 자바파일 : 데이터를 담아서 전달 // 데이터를 저장할 공간 => 멤버변수 => private => 데이터 은닉 private String id; private String pass; private String name; private Timestamp date; // 데이터 접근 메서드, 값을 저장하는 메서드 set, 값을 가져오는 메서드 get public String getId() { return id; } public void setId(String id) { this.id = id; } public String..
MySQL이 DBMS에 접속하는 개념이라면 Oracle은 DBMS가 아닌 DB에 접속하는 형태이다. MySQL DBMS는 DB를 스키마라고 한다면 Oracle에서는 ORCL이 DB이고 sys, system, hr이라는 스키마가 있는 것 (스키마를 유저로 생각) 관리자의 권한으로 만들어진 root 계정 같이 오라클은 DB 생성 시 관리자의 권한을 가지고 있고 sys, system 계정이 자동으로 만들어진다. sys - DB 생성 시 자동으로 만들어지는 계정으로 sysdba 권한을 가진다. - sysdab는 DB내 최상위 권한을 가지고 DB시작과 종료, DB생성이 가능하다. - hr에게 최대로 dba 사용권한을 부여 가능하다. sysdba는 sys에게만 부여되는 것이라 불가능 SQL> conn sys/ora..
제네릭(일반화) 객체 생성 시 데이터타입을 지정하여 사용하도록 하는 기법 - 객체를 생성할 때마다 다른 데이터타입으로 사용 가능하다. 데이터타입은 참조데이터 타입만 지정 가능 - 제네릭 타입 지정 생략 시 모든 데이터타입은 Object로 고정된다. 제네릭 타입 사용 시 주의사항 static, new 연산자, instanceof 연산자 사용 시 제네릭 타입의 파라미터를 사용할 수 없다. 사용 시점에서 데이터타입 확인이 불가능하기 때문! Integer 타입만 허용하는 객체를 생성할 경우 List li = new ArrayList(); 다른 타입의 데이터가 입력되면 에러가 난다. li.add(1); li.add("2");// 컴파일에러 li.add(3.14);// 컴파일에러 li.add(2); li.add(3..
length() 문자열 길이 리턴 equals() 문자열 비교 (대소문자 구분) equalsIgnoreCase() 대소문자 구분하지 않고 문자열 비교 charAt() 특정 인덱스에 위치한 문자 1개 리턴 substring() 특정 범위 문자열(부분 문자열) 추출 concat() 문자열 결합 indexOf() 문자열의 첫 인덱스부터 찾을 문자 인덱스 리턴 lastIndexOf() 문자열의 끝 인덱스부터 찾을 문자 인덱스 리턴 (인덱스 번호는 그대로! 탐색을 거꾸로 하는 것뿐) replace() 특정 문자 또는 문자열에 대한 치환 기능(char, String 타입 모두 가능) trim() 문자열 앞 뒤 공백제거(문자열 사이의 공백 제거하지 않음) toUppercase(), toLowerCase() 알파벳 대..
반복자 Iterator Set과 List 객체를 차례대로 접근하기 위한 객체 Set, List 객체의 iterator() 메서드를 호출해 Iterator 타입 객체를 리턴 List li = new ArrayList(Arrays.asList(1,2,3,4,5)); Set st = new HashSet(li2); Iterator iterator = li.iterator(); Iterator iterator2 = st.iterator(); hasNext() 메서드로 다음 요소의 존재 여부를 판별하고 (다음 요소가 존재하면 true가 리턴) 요소가 존재하면 next() 메서드로 꺼내올 수 있다. while(iterator.hasNext()) { Object o = iterator.next(); System.ou..