0%

java基础笔记

第一周总结

笔记

第一章 初识JAVA

1、什么是JAVA

JAVA是能够跨越多平台的、可移植性最高的一种面向对象的编程语言。JAVA语言可以编写桌面应用程序、Web应用程序以及分布式系统和嵌入式系统应用程序等。

2、Java的几个版本(几个开发模式)

A、JavaSE (JAVA开发标准:是学习JAVA程序开发的基础,包含JAVA语言基础、JDBC数据库操作、I/O输入输出、网络通讯、多线程等技术)

B、JavaEE (JAVA企业级开发:是在企业进行商业软件开发的重要技术,也是我们就业的核心)

C、JavaME (JAVA内嵌式开发:一般是终端智能设备的软件开发。)

3、JAVA开发环境的安装:
1、JAVA的开发工具:
  • a、使用记事本开发(一般不推荐)
  • b、Jcreator(JAVA简单程序开发)
    c、Eclipse (目前常)
  • d、idea (目前常用)
    e、……..
2、JAVA语言开发环境的搭建:
  • a、首先在电脑上安装jdk.(从网上下载或从老师哪里获取jdk安装程序)
    b、把jdk安装在指定的文件夹下。(注意:1、不要安装在中文目录下面。2、不要安装在带有空格 的目录下面。)
    c、在环境变量中设置path,让Eclipse能够找到javac.exe与java.exe,从而可以对JAVA源代码进行 编译与执行。
  • jdk开发环境安装好之后就可以使用Eclipse来进行JAVA程序的开发。(注意:一定要先安装jdk 并设置好开发环境才可以使用Eclipse开发工具,否则报错)
4、开发一个Java程序
1、编写程序框架
1
2
3
public class hello {

}

hello 为类的名称,它要和程序文件的名称一模一样。类名前面要用public和class(java中最小的运行单元:类)修饰,它们的先后顺序不能改变,中间要用空格分隔。类名后要跟一对大括号,所有属于这个类的代码都在大括号中。

2、编写main()方法的框架
1
2
3
public static void main(String[] args) {

}

main()方法是Java程序的入口,所有java应用程序的起始点,没有main()方法就不知道从哪里开始执行程序。一个程序只有、一个main()方法。

3、编写代码
1
2
3
4
5
6
public class demo1 {

public static void main(String[] args) {
System.out.println("这是我的第一个JAVA程序");
}
}

这里面“System.out.println()”是把程序中的数据显示在控制台的语句就是控制输出语句。

输出控制语句的分类:
a、输出内容但是不换行操作:System.out.print();

b、输出内容并且进行换行操作。System.out.println();

5、Java程序的注释

注释就是对源代码的解释。注释是不会被编译的,因为注释是给开发人员来看的,在调试中也常用到

注释的分类:
a、单行注释://

​ b、多行注释:/* /
​ c、文档注释:/*
*/

6、Java中的转义字符

A、转义字符为 : \

B、转义字符的目的:字符串中实现特殊的功能。

C、有哪些转义字符:
a、 \n(表示强制换行操作)

​ b、\t(表示水平制表符,一次打印多个空格)

​ c、\”

d、\\  注意:不是所有的字母或者字符都可以转义。
7、Java的编码规范

a、类名必需用public修饰

b、一行只写一条语句

c、用{}括起来的部分通常表示程序的某一层次结构。”{“要求放在这一结构开始行的最末,}与该结构的第一个字母对齐,并独占一行。

d、低一层次的语句或注释应该比高一层次的语句或注释缩进若干个空格后再书写,使程序更加清晰,增加程序的可读性。

8、常见错误

1、类不可以随便命名(public修饰的类的名称必需与JAVA文件同名)

2、mian()方法中void不可少

3、Java对大小写很敏感,必需要按照规范写大小写

4、;是必需的(在Java中,一个完整的语句都要以;结束,;一定要用英文输入方法写

5、输出的字符串必须要用引号引起来,而且必须是英文的引号

6、输出语句中的+号,+号两边是数字的则进行累加操作,+号两边只要有一边是字符串则相连

第二章、数据类型、变量和运算符

一、数据类型

1、什么是数据类型:

数据类型就是指根据数据的特点进行的一种分类,同特点的数据就是一种类 型。那么它们在内存中占用的空间大小是一致的。所以变量在内存中所占空间的大小是通过数据类型来 决定的。

2、数据类型的分类:
A、数值类型:(整数、浮点数、非数值)

①整数类型(只包含整数,不能包含小数的情况)
a、byte(-128~127)范围的整数值。

b、short(-32768~32767)范围的整数值。

c、int:int是默认使用的整数类型,-21亿~21亿之间的值。
d、long:它是最大的整数类型。

②浮点数类型:float(单精度)double(双精度)

以上两种都可以用来存放整数和小数,只是它们的存放的值的大小与精度不同。在JAVA中默 认就是double类型的。

③字符类型:char(用于存储单个字符:’A’,’b’,’4’,‘@’,’男’)

每一个从键盘上输入的值都会有一个对应的数字编号。
A是65,a是97,Z是90,z是122,0对应48,9对应57,“如果大小写转换可以用对于的数字编号进行加减 。0对应48,9对应57;”对应32.

B、非数值类型:

a、boolean(布尔类型:true与false):它主要使用于判断语句与循环语句。
b、String(字符串类型):凡是内容包含在一对双引号中的都是字符串。比如: “hello”,”12345”,”a”,”中国你好!”。

数据类型从小到大:byte>short>char>int>long>float>double

3、数据类型之间的转换:

主要是指数值类型之间的转换。如:整数类型、浮点数类型、字符类型 之间的转换

a、自动类型转换(隐式转换):把小的数据类型赋值给大的数据类型,不会出现数据问题,但 是会导致空间的浪费。
b、强制类型转换(显示转换):把大的数据类型赋值给小的数据类型,有可能导致数据丢失。所 以在使用的要注意数据问题。

二、变量

1、什么是变量:

变量就类似于生活中的容器,它在程序的运行过程中用来临时存放数据。

2、变量的命名规则:

A、变量名只能以字母、下划线和美元符$开头,其后可以跟字母、数字、美元符和下划线。

B、变量名要见名知意。
C、因为JAVA是区分大小写的,所有变量名相同,但是大小写不同也代表着它是不同的变量。

D、在JAVA中变量名是采用骆驼命名法。什么是骆驼命名法:它是指如果变量名或者方法名是由 一个或者多个单词构成则除了第一个单词的首字母小写外,其他每个单词的首字母均大写。

如:String studentSystemName=”jack”;
帕斯卡命名法:它是指如果类名是由一个或者多个单词构成则每个单词的首字母均大写。 如:Class Student

3、变量的注意事项:

A、变量必须首先声明并且赋了值才可以使用。

B、在同一个作用范围内不能声明同名的变量。

4、使用语法:

数据类型 变量名=值 (申明一个变量的同时给变量赋值)例:double score=95.5; String name=”皓晨”

char sex=’男’

5、常见错误

1、变量未赋值先使用 例:String name

2、使用非法的变量名 例:int %hour=20

3、变量不能重名 例:string name=”皓晨” string name=”Tom”

三、运算符

1、算术运算符:+、-、*、/、%、++、–

2、赋值运算符:=、+=、-+、*=、/=、%=

3、比较运算符:>、<、>=、<=、!=、== (注意:比较运算符进行的运算最终的结果是布尔类型 的值,也就是真与假)

注意:==一般使用在数值类型上以及布尔类型,字符串内容的比较尽量不要使用==来判断 是否相等,而是建议使用equals()方法来进行判断。

4、逻辑运算符:!、&&、||、&、|

5、运算符的优先级:
算术运算符-》比较运算符-》逻辑运算符-》赋值运算符。 (运算符的优先级是可以通过小括号来改变的 )

四、输入操作

1、输入操作就是让程序按照用户输入的值来进行对应的操作。

2、在JAVA中如进行输入操作:

A、导入java.util.Scanner类。如:import java.util.Scanner;

B、创建输入对象。如:Scanner input = new Scanner(System.in);

C、通过调用输入对象的方法来进行数据的输入操作。

​ a、 数据类型 变量名 = input.next数据类型() 注意后面的数据类型首字母要大写

​ ( 如:double num = input.nextDouble(); boolean b = input.nextBoolean();)

​ b、特殊情况的有:

​ 1、字符串类型为: String str1 = input.next();

​ 2、在使用Scanenr输入对象进行输入字符操作时,没有提供字符的输入。

​ char sex;

​ sex = input.next().charAt(0); //input.next().charAt(0)这句代码表示从输入的字符串中获取第一个 字符。0表示第一个位 置,1表示第二个位置。

第九章、循环嵌套

义指循环里面包含了其他循环

一、循环嵌套的方式:

1、for循环嵌套for循环

2、while循环嵌套while循环

3、do…while与do…while嵌套循环

4、while与for循环嵌套

5、while循环嵌套do…while循环

6、do…while循环嵌套while循环

注意:内循环结束后才可执行外循环语句,在双层循环中,外循环变量变化一次,内循环变量要从初始值到结束值变化一遍。

二、循环嵌套中的跳转语句:

1、continue:在内循环中continue语句跳转时是跳过了内循环中剩余语句进入内循环的下一次循环
2、break:跳出本层循环,提前结束本层循环,执行循环下面的语句。即break只能影响一层循环。

3、return:结束当前方法的调用。

第十一章、数组及应用

在Java中,数组就是一个变量,用于将相同数据类型的数据存储在内存中。数组中的每一个数据元素都属于同一数据类型。

一、数组的基本要素:

1.标识符:数组的名称(类似变量名)

2.数组元素:即数组中存放 的数据

3.数组下标:对数组的元素进行编号,方便计算机根据编号去存取。注意下标(index)从0开始。

4.元素类型:储存在数组中的数组元素应该是同一数据类型。

二、了解数组

由数组的数据类型 数组的名称 数组的空间(数组大小)定义

1、数组定义的方式:

A、int[] arrs = new int[10];(推荐使用)
int arrs[] = new int[10];

B、int[] arrs = new int[]{1,2,3,4,5,6,7,8,9,10};//通过直接赋值的方式来决定数组的大小

C、int[] arrs = {1,2,3,4,5,6,7,8,9,10};

D、int[] arrs;//这里只是声明了一个数组,数组大小没有确定(也就是数组大小没有指明)

​ ………
​ int size=10;

​ arrs = new int[size];//在使用数组的时候才指定数组的大小

三、数组使用的注意事项

  • 1、数组一般保存同数组类型的值。

    ​ 如果要把所有不同类型放一个数组可以使用 :obiect[] objes = object[]{0,”abc”,’c’}

  • 2、数组元素的下标从0到数组的长度减一(-1).如果你的数组下标不在这个范围则会导致数组下标越界

    ​ 会提示如下错误:

    ​ java.lang.ArrayIndexOutOfBoundsException

    ​ //Array(数组) Index(下标) OutOfBounds(超出范围) Exception(异常:错误)

  • 3、数组如果定义好了但是没有进行赋值操作的话,它会具有默认值。整数类型的数组默认值为0,浮 点数组默认值为0.0,布尔数组默认值为false,字符串数组默认值为null.

  • 4、注意数组在内存中是连续开辟内存空间的(就像一个行和一个列组成的表格),所以可以通过循环的方式来快速操作数组中的元素。

  • 5、对于数组的长度尽量不要使用数字常量,而是建议使用数组名.length来获取,这样代码更易于维护。

  • 6、数组的大小一旦确定则不能更改。

四、数组的应用

1、需要学会对数组里的元素进行添加、修改、查询、删除、排序操作。(这个地方没有听明白)

2、数组排序(所谓的排序就是指值按照从小到大排列,叫升序(ASC)。从大到小叫降序(DESC)。)

2.1: Arrays.sort(arrs); //使用此代码可以让计算机自动对数组里的元素进行升序排列

2.2:冒泡排序法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
public static void main(String[] args) {
int count = 0;
int[] arrs = new int[] { 9, 5, 1, 3, 4 };
System.out.println("没有排序之前的结果:");
for (int n : arrs) {
System.out.print(n + "\t");
}
System.out.print("\n");

// 实现排序算法
// 外循环控制比较的轮数

int temp;
for (int i = 0; i < arrs.length - 1; i++) {
// 内循环控制每一轮要比较的次数

for (int j = 0; j < arrs.length - 1 - i; j++) {

if (arrs[j] > arrs[j + 1]) {
temp = arrs[j];
arrs[j] =arrs[j + 1];
arrs[j + 1] = temp;
}
// 记录循环的总次数
count++;
}
}
System.out.println("进行排序之后的结果:");
for (int n : arrs) {
System.out.print(n + "\t");
}
System.out.println("\n\n一共循环的次数为:" + count);
System.out.print("\n");
}
}

第十三章、类和对象

一、对象

万物皆对象

二、类(class)

1、类:具有相同特征(属性)与行为(方法)的对象我们可以把它归纳为一个类别,这个类别就是类。

2、类和对象的关系:类是对象的模板,对象是类别的一个实例。(在Java中类就是数据类型,对象就是类的变量)

3、数据类型的分类

a、根据值的特点分为:1、数值类型:byte/short/int/long/float/double/char)

​ 2、非数值类型:(boolean/String)

b、根据值存储在内存中的位置分为:1、值类型(小数据/简单数据):它们存储在栈中,栈的特点是空间小运算快。

​ (有:byte\short\int\long\float\double\char\boolean)

​ 2、引用类型(大数据/复杂型):它们存储在堆栈中,堆栈的特点是空间大, 运算慢(有::String\Array(数组)\class(类)\interface(接口类型)

三、类的结构(由属性和方法构成)

Java的类模板

1
2
3
4
5
6
7
8
9
10
11
12
13
14

public class 类名{
//定义属性部分
属性1;
属性2;
属性3
.....


//定义方法部分
方法1;
方法2;
方法3;
}

例:

1
2
3
4
5
6
7
8
9
10
11
12
package lesson13;     //包名

public class Student { //Student就是类的名称
String name;
int no;
//以上为类的属性

public void show() {
System.out.println("姓名:"+name+" ,学号: "+no);
}
//以上为类的方法
}

从上可以看出在Java中要创建一个类,需要使用一个class,一个类名和一对大括号。其中class是创建类的关键字,class前的public表示公有的,不可以漏写。类的主体就包含在{}中

1、类的命名需要遵循的规则:a、类名通常由多个单词构成,每个单词的首字母大写(帕斯卡命名法)

​ b、类名要见名知意,避免使用缩写词,除非已经被广泛使用

​ c、不能使用JAVA中的关键字;不能以数字开头;不能包含任何嵌入的空格或点号 以及除下划线及$字符外的特殊字符

2、类的属性:就是由类的基本属性构成。

​ 编写类的属性:

​ 通过在类的主体中定义变量来描述类所具有的属性,这些变量成为类的成员变量。

3、类的方法:由方法的签名和方法体构成 (方法指一个类型具备的功能或能做的事)

四、如何创建对象

1、定义好了一个类,就可以根据定义的类的模板来创建对象了。类的作用就是用来创建对象,由类生成对象成为类的实例化过程。一个类可以创建多个对象。

创建对象的语法:

​ 类名 对象名 = new 类名();

引用对象的语法:

​ 对象名.属性 //引用对象的属性

​ 对象名.方法名() //引用对象的方法

​ 对象名.属性= //给对象属性赋值

从以上语法可以看出:在创建类的对象时,需要使用JAVA的 new 关键字。使用new创建对象时,我们并没有给它的数据成员赋值,因为每个对象的属性值可能不一样,所以在创建对象后再给它的数据成员赋值。

引用对象的属性和方法时,需要用到”.”操作符访问类的属性和方法。

注意:在定义类时,如果没有给属性赋初始值,Java会给它一个默认值

int: 0 double:0.0 char:’\u0000’ boolean:false String:null

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package lesson13;

public class Test3 {

public static void main(String[] args) {

Student student1 = new Student();
student1.name = "泰勒";
student1.no = 20150001;
student1.show();

Student student2 = new Student();
student2.name = "贾斯丁";
student2.no = 20150002;
student2.show();
}
}

五、包的介绍

1、什么是包:JAVA中的包类似于操作系统中的文件夹。

2、包的作用:分类管理与维护所有的类;避免了命名上的冲突。

3、如何来创建包:需要使用关键字:package。

4、创建包的注意事项:

​ A、包名都统一采用小写形式

​ B、包名一般采用域名的倒写方式来进行命名,因为域名是唯一的,不容易冲突。如:

​ cn.com.taobao

​ C、包的创建要定义在所有代码的前面。

​ D、包是可以嵌套的(子包)。

​ E、不要使用java或者javax等词作为用户创建的包名。(因为容易出错并会覆盖java中系 统自带的程序)

5、如何导入包。

A、导入包的关键字是import。

​ a、要导入包的其中某个类语法: import 包名.类名

​ b、要导入包下的某些类语法:import 包名.* (即导入这个包所有类)

注意:导入包的时候,只导入当前包中的类,当前包中的子包中的类是不会自动导入的,需要手动

导入。

第十四章、类的方法

一、方法的结构

由方法的签名和方法体构成 (方法指一个类型具备的功能或能做的事)

1、语法:

​ 访问修饰符 返回值类型 方法名(){

​ 方法体

​ }

2、方法的签名(对方法体的描述)

包含:1、方法访问修饰符;2、方法的返回值类型;3、方法的名称;4、方法的参数

​ 1、方法访问修饰符:public / private/default / protected (受保护的)

​ public(公共的,公开的):用public关键字修饰的成员可以在任何位置访问

​ private(私有的):只能在当前类的内部访问,不能再类的外部访问。(安全性高)

​ default(默认的):如果成员的前面没有修饰符则为默认,这样的成员只能在当前包中访问,包外是不能访 问的,包括子包也不可以访问。

​ 2、方法的返回值类型:表示一个方法执行完成之后可以获取到的执行结果。这里的结果是指返回

​ 的类型,如果没有返回结果则指定void即可。如果有返回结果就在方法体中用 return,方法的返回值类型改成需要返回的值的数据类型(如:int/string等)

​ 3、方法的名称:方法名是对方法体的命名,有了方法名我们就可以非常方便的重复调用方法体的代码块。方 法名一般使用动词,表示动作、能力、行为、功能。

​ 方法名使用骆驼命名法:方法或变量的第一个单词的首字母小写,后面每个单词的首字 母大写)

​ 4、方法的参数:就是指提供给方法的数据,希望方法能够根据我们提供的数据来进行操作。

​ 有带参方法和不带参方法,没有参数就用 (),括号必须有,如果有参数可以把参数写在().

​ 如(int num1,int num2)(String name).根据数据的来源是本地的还是外部接收的来决定使用 哪个方法。

3、方法体(方法体就是要实现的功能代码块)

方法体就是包含在{}中的代码块。方法体包含了该方法的所有处理逻辑,一般包含变量定义和执行语句。

二、方法调用

语法:

​ 对象名.方法名()

凡是涉及类的方法的调用,均使用以下两种形式:1、同一个类中的方法,直接使用方法名调用该方法

​ 2、不同类的方法,首先创建对象,再使用“对象名.方法名”调 用。

三、带参方法

语法:

​ 访问修饰符 返回值类型 方法名 (参数列表){

​ 方法主体

​ }

1、参数列表:

​ 是传送给方法的参数列表,用于传递方法在执行时所需要的外面数据,列表中各参数以逗号分隔。

​ 格式:(数据类型 参数1, 数据类型 参数2 ……..数据类型 参数n),n>=0,=0即无参方法

2、调用带参方法

语法:

​ 对象名.方法名(参数1,参数2,……参数n)

注意:1、调用带参方法时必须传入实际的参数的值。参数分为形参和实参:等待别人赋值的叫形参,有实际数据 叫实参。

​ 2、调用方法时需要先实例化对象,再调用方法;实参的类型,数量,顺序都要与形参一一对应。

​ 3、类中的属性也可以是数组,也是用“.”访问数据成员或数据成员的元素。

​ 如:StuedentBiz stuBiz = new StuedentBiz;

​ stuBiz.names或stuBiz.names[1];

四、变量的作用域(指变量的作用范围)

根据范围可以分为:

​ 1、成员变量(也就是在类中声明的变量:它在整个类中有效)

​ 2、局部变量(在方法内声明的变量就是局部变量,包括方法的参数也是属于局部变量,局部变

​ 量只能在当前的方法中有效。)

​ 3、循环变量。(它也是属于局部变量,只是它比局部变量的作用范围更小。只能在循环内部有

​ 效。)

注意:当成员变量名称与局部变量名称同名时采用就近优先的原则,优先使用局部变量。如果希

望使用成员变量则加上关键字this来区别。

五、JavaDoc注释(文档注释)

1、相当于软件使用说明书,它能够从程序源代码中抽取类、方法、成员等注释,形参一个和源代码配套的API帮 助文档。

2、语法规则:以 /** 开头,以 */ 结尾。每个注释包含一些描述性的文本及若干个人Javadoc标签。

3、javadoc标签:一般以 @ 为前缀,常见的Javadoc标签有:

标签 含义 标签 含义
@author 作者名 @version 版本标识
@parameter 参数及其意义 @since 最早使用该方法/类/接口的JDK版本
@return 返回值 @throws 异常类及抛出条件

4、生成JavaDoc文档:在Eclipse中打开File>Export>导出>选择Java菜单中的JavaDOC选项提交即可。

第十六章、字符串

1、在Java中凡是包含双引号的都是字符串

2、分类:

​ 1、不可变字符串(字符串常量):String就是不可变字符串,就是字符串一旦创建好了,不能在原来的 空间进行修改,一旦修改需要开辟一个新的空间,原来的空间需要注 销,所以如果你的数据有很多变量时,不要用String。

​ 2、可变字符串(字符串变量):StringBuffer就是可变字符串,用于存储和操作可能发生变化的字符 串。

3、字符串长度调用的语法为: 字符串变量名.length()、

3、字符串的比较:1、==进行比较,比较的是字符串在内存中的地址是否相等

​ 2、equals()进行比较,比较的是字符串对象的值是的相等

​ 3、字符串比较的语法:字符串1==字符串2 ;字符串1.equals.(字符串2)

三、字符串常用的方法

1、不可变字符串的方法:

​ 1、charAt(index) :返回指定字符串位置上的字符

​ 2、compareTo():比较字符串相同位置上的字符是否相等。如果比较的两个字符串相等则 返回0,如果第一个字符串的字符编码大于第二个字符串的字符编码则 返回大于0的值,否则返回小于0的值

​ 3、concat():拼接字符串,与+功能类似,例:S1=S2.concat(S3);

​ 4、enaWith():判断是否以某个字符串结尾

​ starWith():判断是否以某个字符串开头

​ 5、equals():判断存储在内存堆中的值是否相等。

​ 6、equalsIgnoerCase():判断存储在内存堆中的值是否相等,但是不区分大小写。

​ 7、indexOf(“某字符”)/indexOf(“某字符”,从第几个数的数字):

​ 在字符串中搜索某个指定的字符或字符串,它返回出现第一个匹配字符的位 置,如果没有找到匹配,则返回-1。/返回从第几个数字数的第一个匹配的位置。

​ lastIndexOf():在字符串中搜索某个指定的字符或字符串,它搜索最后一个出现的字符或字 符串的位置。

​ 8、length():调用这个方法返回的结果是字符串中的字符数,长度从1开始数

​ 9、replace(旧字符,新字符):用某个新字符替换原来的某个字符

​ 10、split(“”):对字符串进行分割,()里面是什么就是以什么分割

​ 11、subString(int index):从括号里指定的字符串的位置一直到字符串的末尾

​ substring(begin index,endindex):beginindex是从0开始数的,endindex是从1开 始数的

​ 12、toUpperCase():把字符串返回大写形式

​ 13、toLowerCase():把字符串返回小写形式

​ 15、toCharArry():把字符串返回字符数组

​ 16、new String(数组名):把字符数组转换成字符串

2、可变字符串的方法:

​ 1、append():在原有的字符串后追加字符串

​ 2、insert(index,插入的字符串):在原有字符串插入新的字符串,index都是从0开始计算的

​ 3、delete(要删除的字符串起始位置,要删除的字符串结束位置):删除字符串,从0计算