Bootstrap

Java知识点汇总--基础篇

一、Java基础信息

程序(application):一组有序的指令集合

指令:就是命令的意思

java的组成:javase/j2se(java标准版),javaee/j2ee(java企业版)(13几种技术)

java的应用:internet程序(b/s)和桌面应用程序(c/s) browser

什么是java:是一种面向对象的高级编程语言

安装jdk ,下载,8

配置jdk:选中计算机右键属性->高级系统设置->环境变量->系统变量的path里配置jdk路径

验证jdk是否配置成功 开始->cmd->java -version

记事本开发程序的步骤

①编写:编写源文件Test.java 编译javac Test.java

②编译:字节码Test.class 运行java Test

③运行:运行结果

1.1java的基本结构信息

public class Test{

public static void main(String[] args){

System.out.println("你好");

}

}

public 公共的class 类static 静态void 无返回值main 主要的String 字符串System 系统out 输出print 打印

注意四点:

①类名的首字母要大写,要保证类名与文件名一样

②所有的括号要成对出现,遇到大括号的开始要缩进,大括号的结束要与其对应大括号的开始最前端对齐

③所有标点符号都是英文的

④每行只能放一句代码,每句以分号结束

打印:

System.out.print(); 只打印

System.out.println(); 打印+换行

转义\:反斜杠必须双引号

\t制表位

\n换行

注释:

单行注释 ://注释内容 添加和取消:ctrl+/

段落注释:/*注释内容*/ 添加:ctrl+shift+/ 取消:ctrl+shift+/

1.2数据类型、变量、运算符

数据类型、变量、运算符、类型转化 Scanner

标识符:凡是人为可以起名字的地方

java关键字:java自用的单词代表某种意义,所有 关键字都是小写的

1.2.1数据类型:

①整型 int:不带小数点的 数字,例如 5,15,20 ,-1都是整型数据

byte 1、short 2、int 4、long 8

②浮点型 double:带小数点的 数字:例如5.0,10.2,100.1 都是浮点型数据

③字符串型 String:双引号引起来的 0,1或多个任意字符 例如 "","我","☆abc@!我" 都是字符串数据

④字符型 char:单引号引起来的 单个任意字符, 例如:'a','1','@','我','☆'

⑤布尔型 boolean:描述现实中的两种的东西,他的值只有两个 true,false

1.2.2变量:

就是模拟现实中的容器,用来存取数据

变量的三要素:

变量名,变量类型,变量值

定义变量:int a = 10;

变量的三步走:

①声明变量:数据类型 变量名; 例如 int a;String s;char c;boolean b;double d; 容器的意思

②赋值:变量名=数据; 例如: a =5;s="你好"; 东西的意思

③取值(使用):System.out.println(变量名);例如 int b; b = a 东西的意思

变量的命名规则(标识符):

①变量名只能有四部分组成(字母,数字,下划线_,美元符号$)任意组成,但数字不能开头

②不能与java关键字重名

③见名知意(语义化,在实际开发中有助于维护)

④驼峰标志(小驼峰:第一个单词小写,剩下接着的首字母大写)

注:声明两个同名变量导致编译错误

1.2.3运算符:

①赋值运算符 =

  • 后面的给前面,后面的复制一份给前面
  • 前面如果有值,扔掉,接受后面的值

②算术运算符:整型跟整型运算最终结果是整型,取整数部分

+ 加 - 减 * 乘 / 除

% 求余,求模,取余,取模

③关系运算符:最终结果是boolean

> < >= <= == !=

④逻辑运算符:两个只能放boolean类型

⑤一元运算符:两边只能跟数字变量

++ --

在前:先自+/-,再赋值计算

在后:先赋值计算,再自+/-

(注意:每次自增自减1。一元运算符在变量之后,先做别的运算,再将自身值+1,运算符在变量之前,先自身值+1,再其他运算)

三元运算符 这里不提

小括号()最高

赋值= 最低

1.2.4类型转换 :

注意点:①任何数据类型跟字符串相加往字符串去转

3.小转大为自动转换(大包含小的类型)

4.大转小为强制转换(大的类型比小大类型存在多余的部分)

②如果一个操作数为double型,则整个表达式可提升为double型

③默认是自动转换

强制转换:数值类型(整型和浮点型)互相兼容

(类型名)表达式

int a = (int)5.5;

目标类型<源类型(大转小)强转

自动转换:

double d = 5;//前有隐形的int

目标类型>源类型(小转大)自转

1.2.5Scanner(扫描仪):

代码阻塞,获取用户的输入,和输出打印语句长连用

Scanner in = new Scanner(System.in);

in.next();//不能得到带有空格的字符串

in.nextInt();// 接收整数

in.nextDouble();//接受多浮点型(双精度)

in.nextBoolean();//接受布尔型

in.nextFloat();// 接收小数(单精度)

in.nextLine();//可以获得空白

in.next();//不能得到带有空格的字符串

①random随机数

Random r = new Random();

r.nextInt(3);

Math.random() 范围 :[0.0,1.0)

(max+1-min)*Math.random()+min

②hasNextInt()

处理系统异常

2.循环

2.1单支结构:if

2.2双支结构if-else

多支:if-else if.....-else(范围小的写上面)

2.3switch选择结构

switch选择结构适用于条件判断是等值判断的情况

2.4while循环

③.equals()

方法用于判断 Number 对象与方法的参数进是否相等。

④为什么需要程序调试?

在编写程序过程中有时也出现错误,但不好发现和定位错误,

通过代码阅读或者加输出语句查找程序错误

当程序结构越来越复杂时,需要专门的技术来发现和定位错误,就是“程序调试”

1、程序调试的目的?

找出缺陷原因,修正缺陷

2、程序调试的主要方法?

设置断点、单步执行、观察变量

2.5do.....while

2.6for循环

⑤break:改变程序控制流

用于do-while、while、for中时,可跳出循环而执行循环后面的语句

⑥continue:只能用在循环里

跳过循环体中剩余的语句而执行下一次循环

break语句终止某个循环,程序跳转到循环块外的下一条语句

continue跳出本次循环,进入下一次循环

二、进阶版Java

1.面向对象oop(object orientend programming)

(面试题)1.0对象创建流程:p对象(p引用指向的这个对象)

流程步骤:堆里放着的是对象

栈里的p就是对象的引用/对象名(好比一个人有多个名字,栈---代名词)

Person p = new Person("小倩",20);:

第一步:先在方法区加载Person类

第二步:new: 先在 堆 里面开辟带有地址的一个空间

第三步:先对属性默认初始化 看Person类里有几个属性(age 0,name null)

然后显示的初始化,Person类里有对age赋值(age 90,name null)引用数据类型不能直接存放在栈中,基本数据类型可以。

第四步:Person("小倩",20) 对构造器(对 对象的初始化,而不是创建对象)进行处理

①把构造器里的形参与实参对应,把小倩给n,最后给name属性。

此时,在方法区的常量池里开辟一个空间有一个地址,小倩就放在这里。

与此同时堆里面对应的 属性地址 里的name属性 的属性值 就有一个对应的地址,此时这个地址就指向它。

就把name的null 换成小倩了。

同比:

把20传给a,a赋给age,此时age就换成了20。

第五步:new Person("小倩",20)加载完成后

在栈里开辟空间时 空间里放着p

把堆里的地址返回给p,p就是对象的引用

p就指向了堆里的对应的空间

⑦this关键字

指的是当前对象

this.类成员(成员变量和成员方法) 可以用在所有方法内

this(参数):他的意思调用本类的构造器,只能用在构造器里的第一行

如果本类没有指的是上一级,依次类推,知道object类。

⑧static关键字

静态的不能访问非静态的,非静态的可以调用静态的

同一时刻,该类的所有对象中该变量值都相同

static静态的 只能修饰类成员,一但修饰了类成员,类成员属于类,不属于对象

⑨super()

super 给编程带来的便利/细节 :

查找属性和下面的的查找方法一样的规则:

;