Java基础


零碎

保留几位小数
扫描仪
系统当前时间

标识符


关键字


运算符号

  • 逻辑运算符

执行顺序& if else & switch

  • 顺序执行
  • 分支执行
  • 循环执行
  1. if else
  2. switch:case标签:
    类型为int,char,short,byte的常量表达式
    枚举常量
    javaSE7开始,case标签还可以是字符串字面量

数据类型

基本数据类型-8种
自定义数据类型:class,interface,enum

Java基础_第1张图片
Paste_Image.png

String

String拼接可以用“+”直接拼接,也可以用concat方法,concat的底层结构是StringBuilder。如果字符串很长的话我们考虑用StringBuffer和StringBuilder。


Java基础_第2张图片
String拼接
Java基础_第3张图片
字符串替换
Java基础_第4张图片
Paste_Image.png
Java基础_第5张图片
Paste_Image.png

StringBuffer和StringBuilder

和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。

使用+号拼接字符串,每次拼接都会创建一个新的字符串,占用内容多,效率低。

Java基础_第6张图片
拼接比较

数组Arrays

同样,得先看源码

Java基础_第7张图片
源码,很多,没截完
Java基础_第8张图片
数组的3种创建方式

只有第三种方法支持直接创建一个新的数组返回

只有第三种方法支持直接创建一个新的数组返回

获取数组长度length,是一个属性

Java基础_第9张图片
length and 遍历
Java基础_第10张图片
for each 也可以,前面的灵活一点
排序

二维数组

Java基础_第11张图片
二维数组


数组相关的算法

Java基础_第12张图片
简单算法
Java基础_第13张图片
Paste_Image.png
Java基础_第14张图片
Paste_Image.png

递归(Recursion):

就是在方法里面调用自己。
递是传递给自己
归是退出条件,在某些条件符合的时候,停止调用自己。如果没有退出条件会出现死循环,程序上会出现java.lang.StarkOverflowError这一异常。

递归算法例子:

  1. 计算阶乘


    Java基础_第15张图片
    老和尚讲故事
  2. 递归


    Java基础_第16张图片
    递归
  3. 斐波那契数列


    Java基础_第17张图片
    斐波那契数列
  4. 青蛙跳台阶
    一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。求总共有多少总跳法,并分析算法的时间复杂度。
    我们把n级台阶时的跳法看成是n的函数,记为f(n)。当n>2时,第一次跳的时候就有两种不同的选择:一是第一次只跳1级,此时跳法数目等于后面剩下的n-1级台阶的跳法数目,即为f(n-1);另外一种选择是第一次跳2级,此时跳法数目等于后面剩下的n-2级台阶的跳法数目,即为f(n-2)。因此n级台阶时的不同跳法的总数f(n)=f(n-1)+(f-2)。
    分析到这里,应该都能看出这就是我们熟悉的斐波那契数列。

  5. 题目2:一个台阶总共有n级,如果一次可以跳1级,也可以跳2级......它也可以跳上n级。此时该青蛙跳上一个n级的台阶总共有多少种跳法?

分析:用Fib(n)表示青蛙跳上n阶台阶的跳法数,青蛙一次性跳上n阶台阶的跳法数1(n阶跳),设定Fib(0) = 1;
当n = 1 时, 只有一种跳法,即1阶跳:Fib(1) = 1;
当n = 2 时, 有两种跳的方式,一阶跳和二阶跳:Fib(2) = Fib(1) + Fib(0) = 2;
当n = 3 时,有三种跳的方式,第一次跳出一阶后,后面还有Fib(3-1)中跳法; 第一次跳出二阶后,后面还有Fib(3-2)中跳法;第一次跳出三阶后,后面还有Fib(3-3)中跳法 Fib(3) = Fib(2) + Fib(1)+Fib(0)=4;
当n = n 时,共有n种跳的方式,第一次跳出一阶后,后面还有Fib(n-1)中跳法; 第一次跳出二阶后,后面还有Fib(n-2)中跳法..........................第一次跳出n阶后,后面还有 Fib(n-n)中跳法.
Fib(n) = Fib(n-1)+Fib(n-2)+Fib(n-3)+..........+Fib(n-n)=Fib(0)+Fib(1)+Fib(2)+.......+Fib(n-1) 又因为Fib(n-1)=Fib(0)+Fib(1)+Fib(2)+.......+Fib(n-2) 两式相减得:Fib(n)-Fib(n-1)=Fib(n-1) =====》 Fib(n) = 2*Fib(n-1) n >= 2 递归等式如下:

Java基础_第18张图片


Java基础_第19张图片
Paste_Image.png
Java基础_第20张图片
Paste_Image.png

你可能感兴趣的:(Java基础)