문자열은 참조 데이터 유형입니다
년, 월, 일, 시간, 분, 초를 얻는 방법
공용 정적 void main(String[] args)
{
Actionlistener time = new actionlistener () {//이벤트를 수신하지 않으면 시간을 동적으로 변경할 수 없습니다.
Public void action performed (actionevent e) {
//date 객체는 현재 시스템 시간 (밀리초) 을 나타냅니다.
Datedate = newdate ();
//format 객체는 시간을 지정된 시간 형식으로 지정하는 데 사용됩니다.
Simple date format from = new simple date format (
"yyyy-mm-DD hh: mm: ss"); //여기 형식은 직접 설정할 수 있습니다.
//format () 메서드는 시간 형식을 지정하는 데 사용됩니다.
Stringtimes = from.format (date);
System.out.println (시간); }
}
Timer Tim = 새 타이머 (1000, 시간); //이는 1000 밀리초가 시간을 업데이트한다는 것을 의미합니다.
Tim.start (); //시작
}
내 대답은 정확해야합니다.
우리가 너의 답안을 설명해 줄게.
Date // java.util.Date 에서 : 안에
SimpleDateForma // 이것은 java.text.simpledateformat 입니다. 출력 문제 형식에 사용됩니다.
Dateformat// 는 java.util.* 에 있어야 합니다. 안에 .. 나도 그렇게 생각해
너의 잘못은 실패했다, 왜냐하면 그것은 컴파일되었기 때문이다.
공과시험
그래서 당신이 컴파일하는 이유는
Test.java 는 time.java 가 아닌 클래스를 컴파일해야 합니다. 당신의 시간은 무슨 뜻입니까? 그래서 네가 보고한 이상은 시간류를 찾을 수 없다는 것이다.
ㅋㅋㅋ ... 자바 초보자죠? 나는 이미 모든 대답을 끝냈다! 나는 특별히 너를 위해 모든 말을 썼다.
파일을 읽고 쓰는 방법
Stringbuffer sb = new stringbuffer ();
//File file = new FileWindow () 입니다. 로드 ();
파일 파일;
File = new file ("f:/jtest/from.txt");
TextReader tr = 새로운 TextReader (파일);
Sb.append (tr.readall ());
Out.println (sb.tostring ());
String [] tags = {"\ ","","",""'"};
문자열 str
Str = sb.tostring ();
For(String reg: tags) {
Out.println (reg);
Str = str.replaceAll(reg, "");
}
Out.println (str);
추상 클래스와 인터페이스의 차이점
메서드를 선언하고 구현하지 않는 클래스를 추상 클래스라고 합니다. 몇 가지 기본 동작을 반영하는 클래스를 만들고 이 클래스에 대한 메서드를 선언하고 싶지만 이 클래스에서 이 클래스를 구현할 수 없을 때 사용해야 합니다. 추상 클래스의 인스턴스를 만들 수 없습니다. 그러나 추상 클래스 유형의 변수를 만들어 특정 하위 클래스의 인스턴스를 가리킬 수 있습니다. 추상 생성자나 추상 정적 메서드는 가질 수 없습니다. 추상 클래스의 하위 클래스는 상위 클래스의 모든 추상 메서드에 대한 구현을 제공합니다. 그렇지 않으면 추상 클래스이기도 합니다. 대신 하위 클래스에서 이 메서드를 구현합니다. 그 동작을 아는 다른 클래스는 클래스에서 이러한 메서드를 구현할 수 있습니다.
인터페이스는 추상 클래스의 변형입니다. 인터페이스에서 모든 방법은 추상적입니다. 이러한 인터페이스를 구현하면 여러 상속을 얻을 수 있습니다. 인터페이스의 모든 방법은 추상적이며 프로그램 본문이 없습니다. 인터페이스에서는 정적 최종 멤버 변수만 정의할 수 있습니다. 인터페이스 구현은 하위 클래스 구현과 비슷하지만 구현 클래스는 인터페이스 정의에서 비헤이비어를 상속할 수 없습니다. 클래스가 특수 인터페이스를 구현할 때 이러한 모든 인터페이스의 메서드를 정의 (즉, 프로그램 본문) 합니다. 그런 다음 인터페이스를 구현하는 클래스의 모든 객체에서 인터페이스 메서드를 호출할 수 있습니다. 추상 클래스로 인해 인터페이스 이름을 참조 변수의 유형으로 사용할 수 있습니다. 일반적인 동적 바인딩이 적용됩니다. 참조는 인터페이스 유형과 상호 변환될 수 있으며 instanceof 연산자를 사용하여 객체의 클래스가 인터페이스를 구현하는지 여부를 결정할 수 있습니다.
기본 키는 데이터베이스의 테이블을 식별하는 고유 식별 필드입니다. 테이블의 한 필드이거나 테이블의 여러 필드로 구성될 수 있습니다. 기본 키로 확인되면 이 필드는 비어 있거나 중복될 수 없습니다. 예를 들어, 학생 테이블의 학생 번호를 해당 테이블의 필드로 정의할 수 있습니다.
외래 키의 정의는 기본 키를 기준으로 합니다. 예를 들어, 다른 보고서 양식이 있고 해당 학생 번호 필드가 학생 테이블에 나타나는 경우 학생 번호는 학생 테이블과 관련된 보고서 양식의 외래 키입니다.
String 과 StringBuffer 의 차이점
STRING 의 길이는 변하지 않고 STRINGBUFFER 의 길이는 가변적입니다. 문자열 내용을 자주 조작하면, 특히 내용을 수정하려는 경우 StringBuffer 를 사용합니다. 최종적으로 string 이 필요한 경우 StringBuffer 의 toString () 메서드를 사용합니다.
{}catch(){}finally{} 구조를 시도합니다. {} 을 (를) 시도하는 동안 예외가 발생했습니다. 아직 실행되지 않은 코드가 try {} 에 있습니까? Finally{} 의 코드는요? Finally{} 뒤의 코드는요
Finally{} 의 코드를 실행하고 마지막으로 실행합니다.
분류 알고리즘
정렬은 하나 이상의 키워드 크기에 따라 일련의 레코드를 오름차순 또는 내림차순으로 정렬하는 작업입니다.
분류
컴퓨터 과학에 사용되는 정렬 알고리즘은 일반적으로 다음과 같이 나뉩니다.
계산 복잡도 (최악, 평균, 최적 성능) 는 목록의 크기에 따라 달라집니다 (n). 일반적으로 잘 하는 것은 O. (n log n) 이고, 잘 수행하지 못하는 것은 오메가 (N2) 이다. 정렬에 이상적인 성능은 O(n) 입니다. 하나의 추상 키 비교 작업만 사용하는 정렬 알고리즘에는 항상 최소한 ω (n log n) 가 필요합니다.
메모리 사용 (및 기타 컴퓨터 리소스 사용)
안정성: 안정 정렬 알고리즘은 동일한 키 (즉, 값) 를 기준으로 레코드의 상대 순서를 유지합니다. 즉, 정렬 알고리즘은 안정적입니다. 즉, 두 키가 같은 레코드 R 과 S 가 있고 R 이 원래 시퀀스에서 S 앞에 나타나면 정렬된 시퀀스에서도 R 이 S 앞에 옵니다.
일반적인 방법: 삽입, 교환, 선택, 병합 등. 교환 정렬에는 버블 정렬과 빠른 정렬이 포함됩니다. 선택 정렬에는 흔들기 정렬과 힙 정렬이 포함됩니다.
정수와 같이 동등한 요소를 구분할 수 없는 경우 안정성은 문제가 되지 않습니다. 그러나 다음 숫자 쌍이 첫 번째 숫자를 기준으로 정렬된다고 가정합니다.
(4,1) (3,1) (3,7) (5,6)
이 경우 두 가지 다른 결과가 발생할 수 있습니다. 하나는 동일한 키 값에 따라 상대 순서를 유지하고 다른 하나는 그렇지 않습니다.
(3,1) (3,7) (4,1) (5,6) (질서 유지)
(3,7) (3, 1) (4,1) (5,6) (순서가 변경됨)
불안정한 정렬 알고리즘은 동일한 키 값에 기록된 상대 순서를 변경할 수 있지만 안정적인 정렬 알고리즘은 변경되지 않습니다. 불안정한 정렬 알고리즘은 특히 안정적인 것으로 간주될 수 있습니다. 한 가지 방법은 키 값 비교를 수동으로 확장하여 다른 면에서 동일한 키 값을 가진 두 객체 간의 비교에서 원본 데이터 순서의 항목을 tie final 로 사용하도록 하는 것입니다. 그러나 이 순서는 일반적으로 추가 공간 부담을 가져온다는 점을 기억하십시오.
위치 변경 알고리즘 목록
이 표에서 N 은 정렬할 레코드 수이고 K 는 다른 키 값의 수입니다.
안정적
버블 정렬)-o (N2)
칵테일 정렬 (양방향 버블 정렬) -O (N2)
정렬 삽입)-o (N2)
배럴 정렬-o (n); O(k) 추가 메모리가 필요합니다.
개수 정렬-o (n+k); O(n+k) 추가 메모리가 필요합니다.
병합 정렬)-o (n log n); O(n) 추가 메모리가 필요합니다.
원위치 병합 정렬 (N2)
이진 트리 sort-o (n log n); O(n) 추가 메모리가 필요합니다.
비둘기 구멍 sort-o (n+k); O(k) 추가 메모리가 필요합니다.
기수 정렬-o (n k); O(n) 추가 메모리가 필요합니다.
그놈 정렬-o (N2)
확률이 높은 라이브러리 sort-o (n log n) 에는 (1+ε)n 의 추가 메모리가 필요합니다.
변하기 쉬운
정렬 선택)-o (N2)
셸 Shell sort)— O(n log n), 최고의 현재 버전을 사용하는 경우.
빗 정렬-o (n log n)
힙 정렬)-o (n log n)
Smooth sort-o (n log n)
Quicksort)— O(n log n n n) 예상 시간, O(n2) 최악의 경우; 대형 임의 시퀀스의 경우 일반적으로 알려진 가장 빠른 정렬로 간주됩니다.
Introsort-o (n log n)
참을성 있게 정렬 -O (n log n+k) 추가 case 시간에는 추가 O(n+k) 공간이 필요하며 가장 긴 증분 하위 시퀀스도 찾아야 합니다.
비현실적인 정렬 알고리즘
Bogo sort-o (n× n! ) 예상 시간, 무제한 최악의 경우.
어리석은 정렬-o (n3); 반복 버전에는 O(n2) 추가 메모리가 필요합니다.
Beadsort-O (n) 또는 O (√ n) 이지만 특별한 하드웨어가 필요합니다.
팬케이크 정렬 -o (n) 하지만 특별한 하드웨어가 필요합니다.
분류 알고리즘
정렬 알고리즘은 여러 가지가 있으며 공간 요구 사항과 시간 효율성이 다릅니다. 다음은 몇 가지 일반적인 정렬 알고리즘입니다. 삽입 정렬 및 버블 정렬을 단순 정렬이라고도 합니다. 그들은 너무 많은 공간을 필요로 하지 않지만, 그들의 시간 효율성은 불안정하다. 마지막 세 가지 정렬은 간단한 정렬보다 약간 더 많은 공간이 필요하지만 시간 효율성은 더 높은 수준으로 안정될 수 있습니다. 기수 정렬은 작은 범위의 키워드에 대한 정렬 알고리즘입니다.
정렬 삽입
버블 정렬
정렬 방법을 선택합니다
빠른 정렬
힙 정렬
분류 병합
기수정렬
셰어 분류
정렬 삽입
삽입 정렬은 다음과 같이 구현됩니다.
먼저 빈 목록을 만들어 정렬된 순서 시퀀스 ("순서 목록" 이라고 함) 를 저장합니다.
원래 시퀀스에서 숫자를 가져와 [순서가 지정된 목록] 에 삽입하여 순서가 지정된 상태로 유지합니다.
원래 시리즈가 비어 있을 때까지 2 단계를 반복합니다.
삽입 정렬의 평균 시간 복잡도는 제곱이고 비효율적이지만 구현하기 쉽다. "점진적으로 결과 확장" 이라는 생각으로 순서가 지정된 목록의 길이가 원래 목록의 길이와 같아질 때까지 점진적으로 증가합니다.
버블 정렬
버블 정렬은 다음과 같이 수행됩니다.
먼저 정렬할 모든 숫자를 워크시트에 배치합니다.
리스트의 첫 번째 숫자부터 끝에서 두 번째 숫자까지 하나씩 검사합니다. 한 숫자의 숫자가 다음 숫자보다 크면 다음 숫자와 교환됩니다.
더 이상 교환할 수 없을 때까지 2 단계를 반복합니다.
버블링 정렬의 평균 시간 복잡도는 삽입 정렬과 동일하며 제곱이지만 쉽게 구현할 수 있는 알고리즘입니다.
정렬 방법을 선택합니다
선택 정렬은 다음과 같이 수행됩니다.
배열에서 n 수를 배열한다고 가정하면 배열 아래 첨자는 1 에서 시작하여 n 으로 끝납니다.
I= 1
배열의 I 번째 요소에서 n 번째 요소까지 가장 작은 요소를 찾습니다.
이전 단계에서 찾은 가장 작은 요소를 I 번째 요소로 바꿉니다.
I = n- 1 이면 알고리즘이 종료되고, 그렇지 않으면 3 단계로 돌아갑니다.
정렬을 선택하는 평균 시간 복잡성도 O(n? ).
빠른 정렬
지금부터, 우리는 효율적인 정렬 알고리즘을 접해야 한다. 빠른 정렬은 모든 정렬 알고리즘 중 가장 효율적인 것으로 입증되었습니다. 목록의 전반부가 후반부보다 작다는 것을 먼저 보증한 다음 전반부와 후반부를 각각 정렬하여 전체 목록을 질서 있게 배열한다는 사상을 채택하고 있다. (윌리엄 셰익스피어, 윈스턴, 해리포터, 자기관리명언) 이것은 선진적인 이념이자 그것의 효율적인 원인이다. 정렬 알고리즘에서 알고리즘의 효율성은 목록의 숫자 간 비교 횟수와 직접 관련이 있기 때문에 "목록의 전반부가 후반부보다 작도록 보장" 하면 전반부의 모든 숫자가 후반부의 숫자와 비교되지 않고 숫자 간의 불필요한 비교가 크게 줄어듭니다. 하지만 데이터를 찾는 것은 또 다른 문제입니다.
힙 정렬
힙 정렬은 이전 알고리즘과 다릅니다. 다음과 같습니다.
먼저 정렬 시 "정렬된 목록" 을 삽입하는 것과 같은 역할을 하는 빈 목록을 만듭니다.
시퀀스에서 가장 큰 숫자를 찾아 정렬된 목록의 끝에 추가한 다음 원래 시퀀스에서 제거합니다.
원래 시리즈가 비어 있을 때까지 2 단계를 반복합니다.
힙 정렬의 평균 시간 복잡도는 nlogn 이며, 효율적인 (힙의 데이터 구조와 놀라운 특성으로 인해, "시퀀스의 최대 수 찾기" 작업은 O( 1) 의 시간 복잡도만 필요하고, 유지 관리에는 logn 이 필요한 시간 복잡도가 필요함) 하지만 구현은 비교적 복잡합니다 (여기 7 개 알고리즘 중 비교라고 할 수 있음)
힙 정렬과 삽입 정렬이 비슷해 보이지만 실제로는 본질적으로 다른 알고리즘입니다. 적어도, 그들의 시간 복잡도는 한 단계 차이가 난다. 하나는 제곱이고, 하나는 로그이다.
평균 시간 복잡도
정렬 O(n2) 삽입
버블 정렬 O(n2)
정렬 O(n2) 를 선택합니다
빠른 정렬 (n log n)
힙 정렬 O(n log n)
정렬 결합 O(n log n)
기수 정렬 O(n)
힐 정렬 O(n 1.25)
우선, 회화라는 단어는
내 경험으로 볼 때, session 이라는 단어는 아마도 transaction 에 버금가는 오용 정도를 가지고 있다. 더 흥미롭게도, 트랜잭션 및 세션은 특정 컨텍스트에서 동일한 의미를 갖습니다.
Session 은 중국어에서 회화로 자주 번역되는데, 원래 의도는 처음부터 끝까지 일련의 동작/정보였다. 예를 들어, 전화 걸기에서 전화를 끊는 과정을 세션이라고 할 수 있습니다. 때때로 우리는' 브라우저 세션 중 ...' 이라는 말을 볼 수 있다. 이 경우, 여기에 있는 세션이라는 단어는 본래의 의미로 사용된다. 브라우저 창이 열린 시점부터 닫힌 시점까지의 시간을 가리킨다. (알버트 아인슈타인, Northern Exposure (미국 TV 드라마), 브라우저명언) 가장 혼동되기 쉬운 것은' 사용자 (클라이언트) 가 대화 중' 이라는 말로, 사용자의 일련의 동작 (일반적으로 특정 목적과 관련된 일련의 동작, 예를 들어 인터넷 쇼핑에서 상품 구매부터 결제까지, 때로는 거래라고도 함) 을 의미할 수 있지만, 때로는 하나의 연결만 가리킬 수도 있고 의미 ① 를 가리킬 수도 있고, 차이는 컨텍스트에서만 할 수 있다
그러나 세션이라는 단어가 네트워크 프로토콜과 연결되어 있을 때 일반적으로 연결 및/또는 상태 유지라는 두 가지 의미를 의미합니다. "연결 지향" 은 통신 당사자가 통신을 하기 전에 통신 채널을 설정하는 것을 의미합니다 (예: 상대방이 전화를 받을 때까지 전화 걸기). 반대로, 편지를 쓸 때, 편지를 보낼 때 상대방의 주소가 정확한지 확인할 수 없고, 의사소통 통로가 만들어지지 않을 수도 있다. (윌리엄 셰익스피어, 햄릿, 편지명언) "상태 유지" 는 통신 당사자가 일련의 메시지를 상호 의존할 수 있도록 연결할 수 있음을 의미합니다. 예를 들어, 한 종업원이 돌아오는 옛 고객을 알아볼 수 있고, 그 고객이 지난번에 상점에 1 달러를 빚졌다는 것을 기억할 수 있다. 이 유형의 예로는 "TCP 세션" 또는 "pop 3 세션" 이 있습니다.
웹 서버가 번창하는 시대에는 웹 개발 컨텍스트에서 session 의 의미가 확장되었습니다. 즉, 클라이언트와 서버 간의 상태를 유지하는 솔루션을 의미합니다. 때때로 session 은 "session 에 XXX 저장" 과 같은 이 솔루션의 스토리지 구조를 지칭하는 데도 사용됩니다. 웹 개발에 사용되는 다양한 언어들이 이 솔루션에 대한 지원을 어느 정도 제공하기 때문에, session 은 특정 언어의 맥락에서 해당 언어의 솔루션을 지칭하는 데도 사용됩니다. 예를 들어, 자바 (Java) 에 제공된 javax.servlet 은 종종 P&G, 도메인 내의 특정 시스템 (예: www.google.com 또는 froogle.google.com) 과 같은 본사의 간판과 동등합니다.
경로는 도메인 이름 뒤에 오는 URL 경로입니다 (예:/또는 /foo 등). , 소프트 카운터와 비교할 수 있습니다.
경로와 도메인의 조합은 쿠키의 범위를 구성합니다.
만료 시간이 설정되지 않은 경우 쿠키의 수명이 브라우저 세션 기간에 있음을 의미합니다. 브라우저 창이 닫히면 쿠키가 사라집니다. 이 수명이 브라우저 세션인 쿠키를 세션 쿠키라고 합니다. 세션 쿠키는 일반적으로 하드 드라이브가 아니라 메모리에 저장됩니다. 물론, 규범에는 이런 행위가 규정되어 있지 않다. 만료 시간을 설정하면 브라우저는 쿠키를 하드 드라이브에 저장하고 닫은 후 브라우저를 다시 엽니다. 이 쿠키는 만료 시간이 초과될 때까지 유효합니다.
하드 디스크에 저장된 쿠키는 두 개의 ie 창과 같이 서로 다른 브라우저 프로세스 간에 공유할 수 있습니다. 메모리에 저장된 쿠키에 따라 브라우저마다 처리 방법이 다릅니다. IE 의 경우 열린 창에서 Ctrl-N 을 누르거나 파일 메뉴에서 원래 창과 공유할 수 있지만 새로 열린 IE 프로세스는 메모리 쿠키와 공유할 수 없습니다. 이미 열려 있는 창 Mozilla Firefox0.8 의 경우 모든 프로세스와 레이블이 동일한 쿠키를 즐길 수 있습니다. 일반적으로 자바스크립트의 window.open 으로 열린 창은 원래 창과 메모리 쿠키를 공유합니다. 브라우저가 세션 쿠키를 처리하는 것은 쿠키만 인정하고 사람을 알아보지 못하며, 종종 세션 메커니즘을 사용하는 웹 응용 프로그램 개발자에게 큰 번거로움을 안겨준다.
다음은 구글이 쿠키 응답 헤더를 설정하는 예입니다.
Http/1..1302 를 찾았습니다
위치:/국제/중국/
Set-쿠키: pref = id = 0565f77e132de138: NW =1:TM Expires=Sun,17-Jan-203819:14: 07gmt; Path =/; 도메인 = .google.com
컨텐츠 유형: 텍스트 /html
이는 HTTP 스니퍼 소프트웨어 HTTPLook 에서 캡처한 HTTP 통신 레코드의 일부입니다.
브라우저에서 구글의 리소스에 다시 액세스하면 쿠키가 자동으로 전송됩니다.
Firefox 를 사용하면 기존 쿠키의 가치를 쉽게 관찰할 수 있습니다.
Firefox 와 함께 HTTPLook 을 사용하면 쿠키의 작동 방식을 쉽게 이해할 수 있습니다.
IE 는 쿠키를 수락하기 전에 물어보도록 설정할 수도 있습니다.
쿠키를 수락해야 하는 대화상자입니다.
넷째, 회화 메커니즘을 이해한다
세션 메커니즘은 서버가 해시 테이블과 유사한 구조 (즉, 해시 테이블을 사용할 수 있음) 를 사용하여 정보를 저장하는 서버측 메커니즘입니다.
프로그램이 클라이언트 요청에 대한 세션을 만들어야 하는 경우 서버는 먼저 클라이언트 요청에 이미 세션 id 가 포함되어 있는지 확인합니다. 즉, 이전에 해당 클라이언트에 대한 세션이 생성되었음을 의미합니다. 서버는 세션 id 를 기준으로 사용할 세션을 검색합니다 (검색할 수 없는 경우 새 세션이 생성될 수 있음). 클라이언트 요청에 세션 id 가 포함되지 않은 경우 해당 클라이언트에 대한 세션이 생성되고 세션과 연관된 세션 id 가 생성됩니다. 세션 ID 의 값은 반복되지 않고 쉽게 모방되지 않는 문자열이어야 합니다. 세션 id 는 해당 응답에 저장하기 위해 클라이언트에 반환됩니다.
쿠키는 브라우저가 상호 작용할 때 규칙에 따라 서버에 이 식별자를 자동으로 재생할 수 있도록 세션 id 를 저장하는 데 사용할 수 있습니다. 일반적으로 이 쿠키의 이름은 SEEESIONID 및 와 유사합니다. 예를 들어 WebLogic 이 웹 응용 프로그램을 위해 생성한 쿠키, jssessionid = byok 3 vjfd 75 ANP NRF 7 C2 HMD nv6 qzcebzwienbeierjq 99z wbwb ng! -145788764, 그 이름은 JSESSIONID 입니다.
쿠키는 인위적으로 금지될 수 있으므로 쿠키가 금지될 때 세션 id 를 서버로 다시 전달하는 추가 메커니즘이 있어야 합니다. 일반적으로 사용되는 기술 중 하나는 URL 다시 쓰기, 즉 세션 id 가 URL 경로에 직접 첨부되어 있으며 두 가지 방법으로 첨부할 수 있습니다. 하나는/WLS/docs70/webapp/WebLogic _ xml.html #1036869 형식의 URL 경로로 사용되는 추가 정보입니다.
~ ~ 200 점 주세요 ~ ~