目录
一:Java概述
1.Java的几个版本
2.JDK,JRE,JVM的区别
3.Java的发展历史
4.Java与C运行方式的对比
5.Java环境配置
6.Java开发软件的选择
7.Java开发软件的使用
8.Java程序类型
9.Java的三种注释
二:Java基础语法(基础篇)
1.数据类型
2.关键字
3.运算符
4.Java的输入输出
5.流程控制语句
6.数组(很重要)
7.小结
一:Java概述
1.Java的几个版本
2.JDK,JRE,JVM的区别
3.Java的发展历史
PS:不同版本的JDK特性需要了解(尤其是JDK 8的版本特性)
4.Java与C运行方式的对比
(1)java:
(2)C:
5.Java环境配置
???????
6.Java开发软件的选择
-
Eclipse -
IntelliJ IDEA(推荐)
7.Java开发软件的使用
8.Java程序类型
9.Java的三种注释
二:Java基础语法(基础篇)
1.数据类型
基本数据类型:共8个(在小化大的时候系统可以自动进行;反之,强制转换大化小会丢失字节,造成后果由程序员负责)
-
byte:1个字节(字节流就是一个字节一个字节的读取) -
short:2个字节 -
int:2个字节 -
long:8个字节 -
float:4个字节(使用String.format( )或者printf可以保留小数点) -
double:8个字节(浮点型) -
char:1个字节(字符流是按照Unicode编码形式,两个字节两个字节的读取)
-
这里引出几种编码形式 -
最早的:ASCII码(1个字节编码1个汉字) -
然后:因为发现中文太多,结果后来采用Unicode(2个字节编码1个汉字) -
最后:还是不够用,使用UTF-8编码解决的汉字不够用的问题(3个字节编码1个汉字)
-
boolean:4个字节—取值为true或者false(布尔类型)
引用数据类型:String,ArrayList,Scanner(其实就是某个类) Java为了引入自己的特点:创建了包装类,就是将基本数据类型封装成为类
-
Integer——int -
Double——double -
Character——char -
上面的包装类也会在Java中的JDK库中学习 -
新加的String字符串类,底层基于数组实现(关于字符串后面会有一大章重点学习)
(Ps:写几个常用的)
2.关键字
先总结一下重要的关键字:
-
new(无法实例化abstract类和interface(抽象类和接口)) -
class,interface(接口),package(包) -
extends(继承),implements(实现) -
final,abstract(抽象的),static(静态的) -
this,super -
public,private,protected,default(默认的)(这个在类设计进阶的时候在详细聊聊)
在聊一聊他们的作用
-
final(最终的)
-
修饰类:类无法再被继承 -
修饰成员属性:该属性无法再被修改 -
修饰成员方法:无法被子类重写
-
new(实例化对象;创建引用时)——今天就讲了瑞格上的一个题目,当时不是很清楚 String str = new String();
//这个new相当于实例化String类,创建了一个对象,并且是在堆区创建对象,栈区创建了str引用(指针)
String str = "Hello World!";
//这个是直接在栈区中的字符串常量池子中创建了字符串"Hello World!"
//有一张图可以再复习一下
String[] str = new String[];
//这三个完全不一样,两个new的作用也不一样
Object[] object = new Object[10];
//虽然这个是接口,但是并没有实例化接口,这里接口并不是实例化的意思,而是为这个引用开辟了一块空间 -
class,interface(abstract)
3.运算符
-
+,-,*,/,%(easy,不过注意一下/和%,考试肯定经常考):二元运算符 -
++,--简写的时候使用:一元运算符 i++;
i = i + 1;
//两者效果一样,前者更加简洁
i++;
++i;
//两者效果其实一样,但是编译过后形成的汇编语言其实不一样
int n = 10, i = 1;
n = ++i;//这个先加在赋值,所以n=12 i=2
n = i++;//这个先赋值在相加,所以n=11 i=2 -
<,==,!=等等:关系运算符,返回值为布尔类型 -
||,&&,==:与上面的结合起来使用;与第五点相比连用两个具有短路作用(可以节省cpu运算资源) -
|,&:也可以用于逻辑运算 -
=:赋值运算符,优先级很低 -
三元运算符:写法更加简洁,可以与if,else条件判断相互替换(暂时掌握的不熟,可以先用if,else) -
instanceof:java特有,用于判断一个对象是否是某一个类的实例,返回值为布尔类型 Scanner scanner = new Scanner(System.in);
System.out.println(scanner instanceof Scanner);
//会输出true
int max=a>b?a:b;
//三元运算符,很简洁比较方便
4.Java的输入输出
-
Java采用Stream流的形式管理输入输出 -
在学习阶段常常使用Scanner类,在控制台进行输入(已经掌握的很熟练了) -
在实际情况上,会有多种数据源,Stream流采用的更加频繁 -
在IO流那一章会详细介绍java是如何管理输入输出的(下面是最基本的四个输入输出抽象类)
-
InputStream -
OutputStream -
Reader -
Writer
下面介绍一下Scanner:(毕竟考试和算法,使用的很多)
-
首先这个类需要导包:import java.uitl.Scanner; -
然后,因为这个类中的方法并不是static的,因此需要实例化Scanner类 Scanner scanner = new Scanner(System.in); -
最后便可以使用了
Scanner类使用过程需要注意的几个点:
-
nextLine()与next()方法不一样 -
nextLine():读取一行,截断值为Enter——回车键 -
next():读取一个字符串,截断值为space——空格 -
Scanner类中并没有读取字符的功能:并没有nextChar() -
如果要读取字符串,需要使用Character包装类(后面在JDK基础类库中详细介绍) -
还有就是print(),println(),printf()之间的区别
5.流程控制语句
顺序结构语句
-
赋值语句:i +=i; -
空语句:;(就是单独一个;)(*) for(;;){}
//目前遇到的
?
return;
//不太清楚这个有什么用,这里的;和return -
复合语句:这个不太清楚是什么(*)
选择语句
-
if,else,else if if(){ ? }
else{ ? }
//第一种结构
?
?
if(){ ? }
else if(){ ? }
else{ ? }
//第二种结构
?
?
if(){ ? }
if(){ ? }
else(){ } ? ?
//第三种结构
?
/**总结一下
*else和default很像
*如果前面的条件都不满足就执行这个代码块里面的内容
*并且是可写可不写的
*/ -
switch,case switch(str){
? ?case "1":break;
? ?case "2":break;
? ?default:
}
/**注意一下
*java中的switch是可以支持字符串的
*记得好像是在JDK 8 中提出的新特性
*还有就是一定要记得使用break跳出switch语句
*/
循环语句
-
for:这里在补一个增强for循环,java为了方便遍历数组(集合框架推出了这个,内置迭代器) int[] array = {1,2,3,4,5,6};
for(int i:array){
? ?System.out.println(i+" ");
}//增强for循环,也可以叫做foreach循环
?
//下面补一个后面在集合框架要学的迭代器
//(*) -
while:在不确定循环次数的时候经常使用,配合break;(其实for循环也可以实现:for(;;)) eg:(1)循环输入时,当读取到-1时为止(2)不知道循环结束的具体次数时候 -
do—while(几乎从没用过……)
转移语句
-
break:中断整个循环(很重要,常常与选择语句和循环语句结合使用,下同) -
continue:跳过某一次循环 -
return:这个不太会(回收伏笔了)(*)
6.数组(很重要)
数组的创建
int a[];
int[] a;
//声明数组,a为引用数据类型(指针)
?
a = new int[10];
//分配空间,容量为10,分配空间后每个值默认为0,boolean形为false
?
a.length;
//length为数组的成员属性,表示长度
数组的遍历
//两种
//1.for循环(......)
//2.增强for循环,foreach循环
for(int i ; a){
? ?Syste,.out.println(i);
}
数组的底层原理:其实就是顺序表(在后面集合框架会详细介绍)
二维数组
int[][] a;
int a[][];
//声明数组,创建引用
?
a = new int[3][4];
a = new int[3][];
//java允许创建不规则数组,允许每一行长度不同
?
int a[][]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int x[][]={{10,20,30,45},
{15,25,35,50},
{19,28,38,49}};
//可以直接初始化
?
a.length;
//表示数组的行数
a[i].length;
//表示数组第i行的元素的个数
7.小结
-
掌握基本数据类型和操作运算 -
掌握顺序结构、选择结构和循环结构,具备运用其解决实际问题的能力 -
理解一维数组和二维数组定义形式,掌握ForEach遍历循环
|