对java基础学习的入门 用思维导图整理了一下
资源链接
视频链接:http://pan.baidu.com/s/1eRZUdge 密码:4mvc 书: http://book.boxuegu.com/java/
复记
(一)基础知识
需要注意的点:
%留余数
变量类型转换
switch break语句
变量(数据类型)
基本数据类型
数据类型
图示示例
数值型
整数类型
byte(默认){-128~127}
1个字节 100为例
01100100
基本类型:byte 二进制位数:8
包装类:java.lang.Byte
最小值:Byte.MIN_VALUE=-128
最大值:Byte.MAX_VALUE=127
初始值 0
short
2个字节
基本类型:short 二进制位数:16
包装类:java.lang.Short
最小值:Short.MIN_VALUE=-32768
最大值:Short.MAX_VALUE=32767
初始值 0
int
4个字节
基本类型:int 二进制位数:32
包装类:java.lang.Integer
最小值:Integer.MIN_VALUE=-2147483648
最大值:Integer.MAX_VALUE=2147483647
初始值 0
long
默认int 存long特殊(12345678900)+必须加小字母L
8个字节
long l =12345678900l
基本类型:long 二进制位数:64
包装类:java.lang.Long
最小值:Long.MIN_VALUE=-9223372036854775808
最大值:Long.MAX_VALUE=9223372036854775807
初始值 0L
浮点类型
double(默认)
8个字节
基本类型:double 二进制位数:64
包装类:java.lang.Double
最小值:Double.MIN_VALUE=4.9E-324
最大值:Double.MAX_VALUE=1.7976931348623157E308
初始值 0.0D
float
4个字节
基本类型:float 二进制位数:32
包装类:java.lang.Float
最小值:Float.MIN_VALUE=1.4E-45
最大值:Float.MAX_VALUE=3.4028235E38
初始值 0.0F
字符型(char)
基本类型:char 二进制位数:16
包装类:java.lang.Character
最小值:Character.MIN_VALUE=0
最大值:Character.MAX_VALUE=65535
初始值 空字符,'\u0000'
布尔型(boolean)
初始值 flase
引用数据类型
初始值 null
类(class)
接口(interface)
数组([])
枚举(enum)
注解(annotation)
变量类型转换
short s = 4;
两者区别:
s= s + 5
s+=5
自动转换
short s = 4;
两者区别
s= s + 5//编译失败;
s+=5//编译通过,会做自动转换;
强制转换
运算符
运算符优先级
^异或
两边相同为false
true^true =false
true^false =true
false^true =true
* false^false =false
&& 短路与 &
int y =1;
y>3 & y<6
两边都参与运算
y>3 && y<6
当左边为false;结束运算
||短路或
int y =1;
y>3 & y<6
两边都参与运算
y>3 && y<6
当左边为true;结束运算
位运算符
位运算符图表
图解位运算符(二进制运算快
<<左移
二进制左移一位32(1)=6 左移两位32(2)
.>>右移 >>>无符号右移
最高位出现空位需判断原来是正数(补0)还是负数(补1)
. >>>无符号右移 不判断直接是正数(补0)
.>>无符号右移 用处
二进制转进制
与或非 取反运算
图解 0为假 1真 (0为正 1为负)
|按位或
&按位与
~取反
条件运算符
switch(js和java的区别)
switch (x) {
case 0:
day = "Sunday";
break;
case 2:
day = "Monday";
break;
case 2:
day = "Tuesday";
break;
}
支持 byte short int char 5.0 enum 7.0 String
js 执行 并读到第一个就停止Monday
java 不执行 报错
while,do while,for break continue
do while和while的区别:
do while 无论条件是否满足循环体至少执行一次
for 直角三角形
for(int i=1;i<=9;i++){
for(int j=i;j<=9;j++){
System.out.print("*");
};
System.out.println();
* }
break //跳出方式
outer:for(int i=0;i<3;i++){
inner:for(int j=0;j<4;j++){
System.out.println("i=" + i);
break outer;(i=0);
break||break inner(i=0 i=1 i=2)
)
};
}
continue 回去再次循环
函数方法定义
修饰符 返回值类型
函数定义视图
方法重载(overload参数区分)
功能相同可以名字定义相同
递归
(问题)递归经典问题https://blog.csdn.net/isitman/article/details/61199070
递归求阶乘
经典兔子问题
题目:
古典问题:3个月起每个月都生一对兔子,
小兔子长到第三个月后每个月又生一对兔子,
假如兔子都不死,问每个月的兔子总数为多少?
递归视图
递归代码
public static int getSum(int n){
if(n==1){
return(1);//递归出口,结束条件
}
int temp =getSum(n-1);
return temp +n ;
}
九九乘法表(overload)
默认99乘法表
public static void printCfB(){
printCfB(9);
};
public static void printCfB(int num ){
for(int x=1;x<=num; x++){
for(int y=1;y<=x;y++){
System.out.print(y+"*"+x+"="+y*x+"\t");
}
System.out.println();
}
}
数组
数组定义
int [] arr={1,2,3,4,5};
int[] arr=new int[3] 0;
数组示图
数组的定义方式
比较最大值
数组最大值
数组排序 https://gitee.com/DannyDong/codes/xqrb04imukfthvd5a9l7669
二维数组
int[][] arr = new int[3][];
二维数组简单应用
求和
(二)面向对象
面向对象 面向过程
图例示例
图例示例
面向对象的特征
封装
隐藏实现细节,对外提供公共的访问方式,私有(private)仅仅是封装的一种体现.
继承
多态
类
类定义
图示
对象的创建
压栈 弹栈
图示
封装
图示示例
对变量访问的操作
赋值(设置 set)setAge
判断(保证年龄正确性)
throw new RuntimeException(a+"岁,超出人类认知");
图示示例
取值(获取 get)getAge
构造函数
构造函数细节
图示示例
图示示例
重载
package object;
public class PersonDemo2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Person1 person1 =new Person1() ;
Person1 person =new Person1("list") ;
Person1 person2 =new Person1("wangwu",12);
person2.speak();
}
}
class Person1{
//属性: 姓名,年龄
private String name;
private int age;
//一初始化,既没有姓名,又没有年龄.
Person1(){
};
//定义构造函数,对象一创建就具备姓名.
Person1(String n){
//将接收到的值赋值给对象的name
name = n;
};
Person1(String n,int a){
//将接收到的值赋值给对象的name
name = n;
age = a;
};
//行为
public void speak(){
System.out.println("name="+name+",age="+age);
}
}
this
图示示例
垃圾回收
图示示例
Ststem.gc()
通知虚拟机jvm立即进行垃圾回收
finalize()方法会被自动调用 用于观察何时被回收
static 关键字
静态变量
静态方法
静态代码块
知识点
命名规则
图示
classpath
类变量地址(虚拟机用的)
配置set classpath = C:\javaapp(为空时,清除classpath)
set classpath = C:\javaapp 不等于set classpath = C:\javaapp;加;代表还有当前目录,不加代表唯一 (一般不加,如果要加classpath = .;)
同class名下,虚拟机优先寻找classpath文件
classpath
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
C:\Program Files\Java\jdk1.8.0_91\lib;C:\Program Files\Java\jdk1.8.0_91\lib\tools.jar;
java 注释
/**
@author
@version
java独有的文档注释javadoc
可以生成html的文档说明
/
/
多行注释
*/
* // 单行注释
其他知识点
print 和println 的区别
前者不换行 后者换行
进制
二进制(由数字0和1组成)100举例
1100100
java开头加0b或0B用以区分十进制
(0b01100100或0B01100100)
八进制(由数字1到8组成)100的二进制举例
二进制转八进制←001 001 100(144)
(0144)
十六进制(由0-9,A-F组成每4位为一段
二进制转十六进制←0110 0100(64)
(0x64或0X64)
转义字符
转义字符图示