1. 기본 데이터 유형
성형수술:
바이트 1바이트
짧은 2바이트
정수 4바이트
긴 8바이트
성격:
문자 2바이트
부동 소수점 수:
부동 4바이트
더블 8바이트
부울:
부울 1바이트
2.java 7은 새로운 이진 정수를 추가합니다.
0b 또는 0B로 시작
3.Java의 문자는 16비트 유니코드 인코딩이며 형식은 '/uXXXX'입니다. 여기서 xxxx는 16진수 정수를 나타냅니다.
4. Java는 양의 무한대, 음의 무한대 및 0을 규정합니다.
양의 무한대 = 양수를 0으로 나눈 값
음의 무한대 = 음수를 0으로 나눈 값
0.0을 0.0으로 나누거나 음수의 제곱근을 취하여 숫자가 아님을 얻습니다.
5. Java의 부울 유형은 true와 false만 가능합니다.
6. 자바에는 다차원 배열이 없습니다.
C 언어의 다차원 배열은 실제 배열이 아닌 것 같습니다. 예를 들어 a[3][4], a[0] a[1] a[2]는 실제 배열이고 주소로 채워져 있습니다. C 언어에서 동적으로 할당된 배열과 동일합니다.
int [][] b = 새로운 int[3][4]
7. Java 패키지를 이용한 컴파일 방법
javac -d Hello.java는 현재 디렉토리에 디렉토리 트리를 생성합니다.
Java 패키지 이름.클래스 이름 실행
8. Java 다형성의 객체 필드에는 다형성이 없습니다. 예를 들어 상위 클래스 object = new subclass()와 같이 해당 필드가 하위 클래스에 포함되어 있어도 object.field를 상위 클래스라고 합니다.
9. 인스턴스오브 연산자
형식: 참조 변수 이름 인스턴스of 클래스 이름(또는 인터페이스) 이전 개체가 다음 개체의 클래스, 하위 클래스 또는 구현 클래스의 인스턴스인지 확인하는 데 사용됩니다. 그렇다면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
10. Java의 기본 데이터 유형과 해당 캡슐화 클래스 간의 변환
int a = 1;
정수 A = 새로운 정수(a);
a = A.intValue();
다른 유형도 마찬가지입니다.
11. 싱글톤 클래스 예시
공개 정적 무효 메인(문자열[] 인수)
{
싱글톤 s1 = Singleton.getInstance();
싱글톤 s2 = Singleton.getInstance();
System.out.println(s1 == s2);
}
}
클래스 필드: 초기값은 정적 초기화 블록이나 FIeld 선언 시 지정되어야 합니다.
인스턴스 필드: 비정적 초기화 블록에서 선언하거나 FIeld 선언 시 초기 값 또는 생성자를 지정하여 선언해야 합니다.
13. 최종 변수는 명시적으로 초기화되어야 합니다. 시스템은 최종 변수를 암시적으로 초기화하지 않습니다.
14.java는 상수 풀을 사용하여 이전에 사용되었던 직접 문자열 상수를 관리합니다. 예: String a = "java"; 시스템은 상수 문자열 "java"를 상수 풀에 저장하고 String b = "java"; 다시 실행됩니다. a == b는 true입니다.
15. Final 메서드는 재정의될 수 없으며 최종 클래스는 상속될 수 없습니다.
private 메소드를 사용하면 final private과 동일하다.
final로 수정된 메소드가 하위 클래스에 나타나면 하위 클래스에서 새로 정의한 것이며 상위 클래스와는 아무런 관련이 없습니다.
16. 불변 클래스: 이 클래스의 필드는 생성 후에 변경할 수 없습니다. Java는 8개의 기본 변수 래퍼 클래스를 제공하며 문자열 클래스는 모두 변경할 수 없습니다.
17. 인스턴스를 캐시하는 불변 클래스
공개 부울은 같음(객체 obj)
{
if(this == obj)
사실을 반환;
if(obj != null && obj.getClass() == CacheImmutale.class)
{
CacheImmutale ci = (CacheImmutale)obj;
return name.equals(ci.getName());
}
거짓을 반환;
}
공개 int hashCode()
{
이름을 반환합니다.hashCode();
}
}
공개 클래스 CacheImmuteTest
{
공개 정적 무효 메인(문자열[] 인수)
{
CacheImmutale c1 = CacheImmutale.valueOf("안녕하세요");
CacheImmutale c2 = CacheImmutale.valueOf("안녕하세요");
System.out.println(c1 == c2);
}
}
캐싱 메커니즘을 사용하여 -128-127 사이의 숫자를 생성하는 java에서 제공하는 java.lang.Integer도 있습니다.
정수 in2 = Integer.valueOf(6);
정수 in3= Integer.valueOf(6);
in2 == in3은 참입니다.
18. 정적 메소드와 추상 메소드를 동시에 수정할 수 없습니다. 클래스 추상 메소드는 없습니다.
19. 클래스는 상위 클래스를 갖고 여러 인터페이스를 구현할 수 있습니다. 인터페이스에서 Filed는 public, static 및 final이고 메서드는 public abstract입니다.
20. 비정적 내부 클래스의 메소드가 변수에 액세스할 때 검색 순서는 다음과 같습니다. 먼저 내부 클래스의 메소드 내에서 -> 내부 클래스 -> 외부 클래스에서 발견되지 않으면 컴파일 오류가 발생합니다.
공개 클래스 DiscernVariable
{
private String prop = "외부 클래스의 인스턴스 변수";
개인 수업 InClass
{
private String prop = "내부 클래스의 인스턴스 변수";
공공 무효 정보()
{
String prop = "지역변수";
System.out.println("외부 클래스의 필드 값: " + DiscernVariable.this.prop);
System.out.println("내부 클래스의 필드 값: " + this.prop);
System.out.println("로컬 변수의 값: " + prop);
}
}
공개 무효 테스트()
{
InClass in = new InClass();
in.info();
}
공개 정적 무효 메인(문자열[] 인수)
{
새로운 DiscernVariable().test();
}
}
22. 외부 클래스 외부에서 내부 클래스에 접근
비정적 내부 클래스에 액세스: outclass.Inclass varname = new outclass().new InClass();
정적 내부 클래스에 액세스: outclass.Inclass varname = new outclass.Inclass();
클래스 아웃
{
수업 중
{
공개인()
{
System.out.println("비정적 내부 클래스 생성자");
}
}
}
공개 클래스CreatInnerInstance
{
공개 정적 무효 메인(문자열[] 인수)
{
Out.In in = new Out().new In();
/*
위의 코드는 다음과 같이 별도로 작성할 수 있습니다.
아웃.인 인;
아웃 아웃 = 새로운 아웃();
in = out.new In();
*/
}
}
클래스 SubClass는 Out.In을 확장합니다.
{
//SubClass를 정의하는 생성자를 표시합니다.
public SubClass(아웃아웃)
{
//전송된 Out 객체를 통해 In을 호출하는 생성자를 표시합니다.
out.super();
}
}
클래스 StaticOut
{
정적 클래스 StaticIn
{
공개 정적인()
{
System.out.println("정적 내부 클래스 생성자");
}
}
}
공개 클래스 CreatStaticInnerInstance
{
공개 정적 무효 메인(문자열[] 인수)
{
StaticOut.StaticIn in = new StaticOut.StaticIn();
/*
위의 코드는 다음과 같이 별도로 작성할 수 있습니다.
StaticOut.StaticIn in;
in = new StaticOut.StaticIn();
*/
}
}
클래스 SubClass는 StaticOut.StaticIn을 확장합니다.
{
//내부 클래스 인스턴스를 생성할 필요가 없습니다.
}