Java内存模型(JMM)
Java虚拟机规范中定义了Java内存模型. ⽬的是屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到⼀致的 并发效果.
数据类型
在Java中数据类型主要分为两类:基本数据类型和引⽤数据类型。 基本数据类型有四类 ⼋种
1. 四类:整型、浮点型、字符型以及布尔型
2. ⼋种:
注意: 不论是在16位系统还是32位系统,int都占⽤4个字节,long都占8个字节 ,整型和浮点型都是带有符号的;整型默认为int型,浮点型默认为double ;字符串属于引⽤类型,该种类型后序介绍。
在Java中使⽤String类定义字符串类型,⽐如:
public static void main(String[] args) { String s1 = "hello"; String s2 = " world"; System.out.println(s1); System.out.println(s2); System.out.println(s1+s2); //此处s1+s2 意味将两字符串拼接 }递归的概念
⼀个⽅法在执⾏过程中调⽤⾃⾝,就称为"递归".
递归相当于数学上的"数学归纳法",有⼀个起始条件,然后有⼀个递推公式.
例如,我们求N!
起始条件:N=1的时候,N!为1.这个起始条件相当于递归的结束条件.
递归公式:求N!,直接不好求,可以把问题转换成N!=>N*(N-1)!
核心
1.n=1时 初始情况
2.=n时 f(n-1)成立时 如何求f(n) 成立
递归的必要条件:
1. 将原问题划分成其⼦问题,注意:⼦问题必须要与原问题的解法相同
2. 递归出⼝
数组的创建及初始化 数组的创建
1. T[] 数组名 = new T[N];
T:表⽰数组中存放元素的类型 T[]:表⽰数组的类型 N:表⽰数组的⻓度
数组的初始化
数组的初始化主要分为动态初始化以及静态初始化。
1. 动态初始化:在创建数组时,直接指定数组中元素的个数
int[] array = new int[10];
2. 静态初始化:在创建数组时不直接指定数据元素个数,⽽直接将具体的数据内容进⾏指定
语法格式: T[] 数组名称 = {data1, data2, data3, ..., datan}
认识null null
在Java中表⽰"空引⽤",也就是⼀个不指向对象的引⽤
int[] arr = null; System.out.println(arr[0]); // 执⾏结果 Exception in thread "main" java.lang.NullPointerException at Test.main(Test.java:6)