"빌드 선반 자바를 기반으로,"우리는 자바의 기초에서 시작 - 공통 API 방법

1. Object 클래스

일반적인 방법 1.1 객체는 무엇입니까?

  • 가. 두 개체가 같은지 여부를 검사 같음
  • . B 객체 복사 복제 방법 [질문 : 얕은 복사 또는 딥 카피인가? ]
  • 다. getClass 메소드는, 현재의 객체 클래스의 객체를 반환 및 관련
  • D. 방법은 통지의 notifyAll, 지정된 객체에 대한 기다림은 스레드 동기화에 사용

2. String 클래스

일부 속성 2.1 String 클래스

  • String 클래스는 캐릭터 라인을 나타냅니다. 모든 문자열 리터럴 (예 : "ABC") 자바 프로그램은이 클래스의 인스턴스로 구현됩니다.
  • 문자열은 일정한 그들의 값을 생성 한 후 변경 될 수 없다. 문자열 버퍼 변수 문자열을 지원한다. String 객체는 불변이기 때문에, 그래서 그들은 공유 할 수 있습니다.
  • 자바 언어를 제공합니다 ( "+") 및 특별 지원은 문자열 연결 기호에 다른 객체의 문자열로 변환 할 수 있습니다. 병합 된 문자열은 모두 StringBuilder (또는 StringBuffer) 클래스와 그 append 방법에 의해 달성된다.

자신이 만든되면 2.2 변경할 수 없습니다

  • 차이; 문자열의 = 새 문자열 ( "안녕하세요") 및 문자열의 = "안녕하세요"
  • 스트링 특성을 바꿀 수없는 만들어지면 [내용이 변경 될 수없고, 참조 될 수있다]

질문과 답변

A:String的特点:    一旦被创建就不能改变
B:案例演示   
     a:如何理解这句话
     String s = "hello" ;
     s =  "world" + "java"; 问s的结果是多少?

下面这条语句一共创建了多少个对象:String s = “a”+“b”+”c”; 分别都是什么?
答案:5个对象
分别是 "a" , "b" , "c" , "ab" , "abc"
因为字符串的特点是一旦被创建就不能被改变,所有在使用常量进行相加的时候,都是在创建新的字符串对象
最后在把字符串"abc"这个常量值赋值给引用变量s

출력 :

"빌드 선반 자바를 기반으로,"우리는 자바의 기초에서 시작 - 공통 API 방법

3. StringBuffer와 클래스와 StringBuilder 클래스

3.1의 ​​StringBuffer 클래스 개요

  • 문자열 버퍼는 StringBuffer와는 컨테이너
  • 우리 문자열 접합 작업, 각 스티치는, 새로운 String 객체를 구축 할 경우, 시간이 많이 걸리는과 공간의 낭비. StringBuffer를이 문제를 해결할 수
  • 문자 안전 해당 효율성의 스레드 안전 변수의 순서는 상대적으로 낮은

3.2 StringBuffer와 문자열과의 차이점

  • 문자열은 문자의 불변 순서입니다
  • StringBuffer를 일련의 문자입니다

3.3의 StringBuffer와 문자열 상호

A : 문자열 - StringBuffer를

  • A : 생성자
  • B : APPEND ()에있어서

B : StringBuffer를 - 문자열

  • A : 방법 사용하여 문자열
  • B : 생성자
  • C : 구성된 toString () 메소드

3.4 StringBuilder 클래스

  • StringBuilder의 스레드가 안전하지 않고, StringBuffer와 같은 기타;의 StringBuffer와 StringBuilder에 달성하기 위해 기본 문자 [] 배열되어

4. 배열

의 원리를 나타내는 고급 4.1 거품 정렬 어레이

"빌드 선반 자바를 기반으로,"우리는 자바의 기초에서 시작 - 공통 API 방법

버블 정렬 원리

  • 처음으로 모든 인접한 두 요소, 다음 큰 릴리스, 가장 큰 인덱스의 최대를 완료
  • 버블 정렬 코드
/**
* 冒泡排序
* @param arr
*/
private static void bubbleSort(int[] arr) {
    for(int y = 0 ; y < arr.length - 1; y++) {
        for(int x = 0 ; x < arr.length - 1 - y ; x++ ) {
            if(arr[x] > arr[x+1]) {
                int temp = arr[x] ;
                arr[x] = arr[x+1] ;
                arr[x+1] = temp ;
            }
        }
    }
}

4.2 급 원리도 화상 정렬 배열을 선택할

"빌드 선반 자바를 기반으로,"우리는 자바의 기초에서 시작 - 공통 API 방법

정렬 원칙을 선택

  • 0 인덱스에서 처음으로, 앞으로 상대적으로 작은 풋의 요소를 되돌릴 수는 최소 지수의 최소를 완료

고급 분류 코드 구현의 배열을 선택

private static void selectSort(int[] arr) {
    for(int index = 0 ; index < arr.length - 1 ; index++) {
        for(int x = index + 1 ; x < arr.length ; x++) {
            if(arr[index] > arr[x]) {
                int temp = arr[index] ;
                arr[index] = arr[x] ;
                arr[x] = temp ;
            }
        }
    }
}

4.3 배열은 이진 검색 원리 다이어그램 이미지를 고급

고급 이진 검색 아이디어의 배열

  • 크고 작은 요소 가운데는 절반 요소로 줄일 수있을 것입니다 때마다 확인

고급 이진 검색 코드의 배열

/**
 * 二分查找
 * @param arr
 * @return
 */
private static int binarySearch2(int[] arr , int value) {
    // 定义三个变量
    int minIndex = 0 ;
    int maxIndex = arr.length - 1 ;
    while(minIndex <= maxIndex) {
        int midIndex = (minIndex + maxIndex) >>> 1 ;
        // 比较
        if(arr[midIndex] == value) {
            return midIndex ;
        }else if(arr[midIndex] > value) {
            maxIndex = midIndex - 1 ;
        }else if(arr[midIndex] < value) {
            minIndex = midIndex + 1 ;
        }
    }
    // 返回
    return -1;
}

포장의 기본 유형

5.1 왜 포장의 기본적인 유형이있다

타입은 기본적인 동작 데이터를 위해보다 편리한 동작은 자바 기본 데이터 타입에 대응 한 각 클래스 타입을 제공한다.

베이스와 문자열 사이의 데이터 형식을 변환하기위한 수단은, 하나 개의 일반적인 동작

포장의 기본 유형 5.2 및 대응

byte           Byte
short          Short
int            Integer
long           Long
float          Float
double         Double
char           Character
boolean        Boolean

6. 정규 표현식

정규 표현식은, 당신이 할 수있는 확인하기 위해 시간을 기억 할 필요가 없습니다

  • 그것은 단일 또는 구문론 규칙의 문자열과 일치하는 일련의 광고를 설명하는 데 사용되는 캐릭터를 의미한다. 그것은 실제로 규칙입니다. 그것은 그것의 자신의 특별한 응용 프로그램을 가지고있다.
  • 특정 직접 인터넷 검색
    • 예를 들어, 전화 번호, 이메일, ID 번호가 일치하는 등

7. 패턴 매처 클래스와

* 正则的获取功能需要使用的类

제 수학 클래스

* Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。
* 成员变量
public static final double E :         自然底数
public static final double PI:        圆周率
    * 成员方法

public static int abs(int a)               取绝对值
public static double ceil(double a)        向上取整
public static double floor(double a)       向下取整
public static int max(int a,int b)         获取最大值
public static int min(int a, int b)        获取最小值
public static double pow(double a,double b)获取a的b次幂
public static double random()              获取随机数  返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。
public static int round(float a)           四舍五入
public static double sqrt(double a)        获取正平方根

9. 임의의 클래스

임의의 카테고리

  • 무작위 시드가 동일한 두 개의 인스턴스를 생성하는 경우 이러한 난수 생성 번호와 동일한 시퀀스를 반환 메소드 호출 동일한 시퀀스의 각 인스턴스에 대해 생성된다
  • 생성자
public Random()             没有给定种子,使用的是默认的(当前系统的毫秒值)
public Random(long seed) 给定一个long类型的种子,给定以后每一次生成的随机数是相同的
public int nextInt()
public int nextInt(int n)

10. 시스템 클래스

시스템 레벨의 클래스

  • System 클래스에는 유용한 클래스 필드 및 메서드가 포함되어 있습니다. 그것은 인스턴스화 할 수 없습니다.
  • 시스템 레벨 작업

추천

출처blog.51cto.com/14637764/2457869