第一章
1.java源文件(.java) java字节码文件(.class)
2.java源文件通过编译器被转化为"字节码",通过解释器解释并运行java的字节码.
3.字节码好处:
(1)转化为字节码后文件尺寸较小,便于网络传输.
(2)可跨平台运行.
4.任何一种可以运行java字节码的软件均可以被看成java的虚拟机(JVM)
JVM虚拟机其实就是一个字节码解释器
5.java应用程序的主类包含有一个public static void main(String [] args)的主方法,这个方法是java应用程序的标志,也是java程序执行的入口点.
6.一个java程序由一个或多个java源文件构成,但是public类只有一个
7.java源程序文件:
package:0个或1个,表示这个程序所属的包,如果有必须放在最前面,如果没有,表示程序属于默认包.
import:0个或多个,必须放在类定义之前
类定义(1个或多个类定义)每个文件夹可以定义若干个类
定义类:使用关键字class
第二章
1.JDK:是java语言的软件工具开发包,是java基础环境和平台标准和工具包的封装
JRE:是java运行环境,用于设置环境变量
JRE中包含JVM(虚拟机)
2.若源文件中有多个类,则最多只能有一个public类,如果有,则源文件的名字必须与public类的名字相同.若源文件没有public类,那么源文件的名字由用户随意命名
3.main()方法没有返回值,在他之前要加上void关键字.
4.class是类的标志,类包括属性和方法.
第三章
1.数据类型:基本数据类型(整型,浮点型,逻辑型/布尔型,字符型)
引用数据类型(类,数组,接口)
2.整型:byte,short,int,long
浮点型:float,double
布尔型:Boolean
字符型:char
3.标识符:用来表示变量名,类名,方法名,数组名,和文件名的有效字符序列
标识符语法:由字母,数字,下划线,美元符号组成,可以以字母,下划线或美元符号开头,但是不能以数字开头
关键字不能当做标识符使用
4.常量:整型常量,浮点型常量,布尔型常量,字符型常量和字符串型常量.
单精度常量后跟一个字母f或F,双精度常量后跟一个字母d或者D. 双精度常量后边的d或者D可以省略.
整型常量:一般整型常量, 长整型常量(-32L,0L)
布尔型常量:true,false
字符型常量:用一对单引号括起来的单个字符,字符也可以是转义符. 'a' 'b'
字符串常量:用双引号引起来的一串若干个字符 "hhh"
常量的声明:用关键字 final声明,通常final写在最前面. final int MAX=10
5.变量:先声明再使用,变量在使用之前必须先声明.
变量的基本要素:名字,类型,值,作用域.
声明变量:声明变量的数据类型和变量名称,必要时需要指定变量的初始数值.
变量声明格式:类型 变量名[=初值][,变量名[=初值]......];
变量初始化:声明变量的同时对变量进行初始化,即赋初值. int i=0;
变量的赋值(没有赋初值或者需要重新对变量赋值):变量名=值;
变量的赋值:在声明的时候赋值,声明后再赋值,在程序的任何位置声明并赋值
6.数据类型转换:自动数据类型转换,强制类型转换
占用比特数较少的数据转换为占用比特数较多的数据:自动转换
占用比特数较多的数据转换为占用比特数较少的数据:强制转换
转换类型的由小到大:byte,short,char,int,long,float,double
强制类型转换/显性转换:(欲转换的数据类型) 变量名
强制转换会导致数据存储位数的缩小,从而计算机数据精度的降低
7.专门用于输入操作的类: Scanner(扫描器)
数据输入:(1)导包: import java.util.Scanner;(在public class的上边)`
(2)创建对象(固定句式)Scanner sc=new Scanner(System.in);
(3)接收数据:int x=sc.nextInt();
(4)输出数据:System.out.println("x"+x);
8.运算符
加一减一运算符的加一减一是针对于操作数来说的(P32)
算术运算符: +, -, *. /, %,++, --.
关系运算符:> , <, >=, <=, ==, !=.
逻辑运算符:! ,&&, || , &, |.
!:取反, 和操作数结果相反 !a=-a;
&:逻辑与, 两个操作数有false则false.
|:逻辑或, 两个操作数有true则true.
^:异或, 两个操作数相同为false,不同为true.
一元运算符:
+:正值 +a
-:负值 -a
++:加一 a++或 ++a
--:减一 a--或--a.
加一减一运算符可以放在操作数之前也可以放在操作数之后,如果放在操作数之前,操作数先进行加一减一运算,然后再进行表达式的运算. 如果放在操作数之后,则先进行表达式的运算,再进行加一减一运算.
二元算术运算符: + - * / %(取余/取模运算)
三元算术运算符:(条件表达式)?表达式1:表达式2 如果条件表达式结果是true,则运算后的结果是表达式1,如果条件表达式结果是false,则运算后的结果是表达式2
第四章
1.//是单行注释
/*单行或多行注释*/
/**文件注释,描述类和数据以及方法*/
2.if条件语句(一种条件判断,两种条件判断,多种条件判断),switch选择语句
3.循环结构:while先判断后执行
do while:先执行后判断
for循环适合知道要循环的次数的情况
while循环适合不知道要循环多少次的情况
do while:至少执行一次,while可能不执行
循环三要素:1.循环变量的初始化
2.循环的条件(在什么范围内循环变量继续循环)
3.循环变量的改变,(循环变量向着循环结束的条件的改变)
4.在main方法中,需要在方法内初始化和赋值变量(成员变量),因为main方法是静态的,如果在类中定义赋值变量(全局变量),需要在初始化变量前面加上静态static
5.for(int i=0;条件判断语句;条件控制语句){
循环体语句
}
while循环:
初始化
while(条件判断句){
循环体语句;
条件控制语句;
}
do while循环
do{
循环体语句
条件控制语句
}while(条件判断语句)
for(初始化和赋值;条件判断语句;条件控制语句){
循环体语句
}
增强型for循环
6.多重循环/循环嵌套:在循环语句的体内又有循环语句。(二重循环,三重循环)
循环中的跳转语句可以实现循环执行过程中的流程转移:break,continue,return。
break:1.终止循环体内容的执行 2.使switch语句终止某个case
continue:跳过某次循环体内容的执行,作用是终止这一轮的循环,跳过这一轮循环剩下的语句,直接进入下一轮循环。
return:用来使程序从方法中返回,并为方法返回一个值
return 表达式; // 返回表达式的值
7.程序流程结构:顺序结构,分支结构/ 选择结构,循环结构
分支结构/选择结构:if(一种情况的判断,两种情况的判断,多种情况的判断(else if) switch语句,
8.在循环中声明的变量声明的是局部变量。退出循环这个变量就不复存在了
9.break语句一出现在循环中,整个循环结束,结束全部循环,例如switch选择语句,选择了一个case,其它case全部中止。
continue结束本轮循环,跳到循环的开始处执行下一轮循环。
return用来使程序从方法中返回,相当于给方法赋值。
10.random随机数及使用
(1)导包:import Java .util.Random
(2)创建对象:Random r=New Random( );
(3)获取随机数:int nubmer =r.nextInt(取值范围的最大值)
第五章
数组:是若干个相同数据类型的元素按照一定的顺序排列的组合。
数组可以分为一维数组和多维数组。
内存分为栈内存和堆内存。栈内存:存储局部变量,超出变量的作用域后,会自动消失。
堆内存:存储成员变量以及new运算符创建的数组或对象。在堆内存中存储的内容由Java虚拟机的垃圾回收机制来自动管理,
类变量(也叫静态变量)是类中独立于方法之外的变量,用static修饰。
局部变量定义在方法之中的变量称为局部变量;局部变量要先赋值,再进行运算,而实例变量均已经赋初值。实例变量的对象赋值为null;
成员变量也称为实例变量。 静态变量也称为类变量。
成员变量和静态变量的区别:
(1)成员变量所属于对象。所以也称为实例变量。静态变量所属于类。所以也称为类变量。
(2)成员变量存在于堆内存中。静态变量存在于方法区中。
(3)成员变量随着对象创建而存在。随着对象被回收而消失。静态变量随着类的加载而存在。随着类的消失而消失。
(4),成员变量只能被对象所调用 。静态变量可以被对象调用,也可以被
8.null是空,用于定义引用变量,将一个引用变量赋值为null,表示该引用变量为空,“ ”
可以将null赋给引用类型变量,但不可以将null赋给基本类型变量。
int i=null 是错误的
9.数组:相同数据类型,有先后顺序,数组元素用数组名字和他在数组中的顺序位置来表示。a[0]:数组a中的第一个元素。 a[1]:数组a中的第二个元素。
10、数组格式:
数据类型[ ] 变量名:int[ ] a :定义了一个int类型的数组,数组名是a。
数据类型 变量名[ ]:int a[ ]:定义了一个int类型的变量,变量名是a数组。
11.一维数组的定义:声明、分配内存空间给数组(初始化)、创建数组元素并赋值。
数据类型[ ] 数组名; //声明数组
数组名=new 数据类型[个数]; //分配内存空间给数组(声明数组有几个元素,并且为他们分配内存空间)
也可以把这两步合为一步(动态初始化): 数据类型[ ] 数组名=new 数据类型[个数]
静态初始化是直接指定了元素内容,动态初始化只指定了元素个数.
12.一维数组元素的访问/引用:
数组名[下标] 数组的下标就是元素在数组中的顺序,是从零开始的
13.每个数组都有一个属性length指明他的长度. X.length:数组X所包含的元素个数. 数组名.length:获取数组的长度/元素个数
14.foreach语句:不用下标也可以遍历
for循环使用下标遍历:for (int i=0,i 增强型for循环:for(int 变量名 : 数组名)-----输出sout(i) p63:增强型for循环. 15.多维数组:数组元素也是数组的数组. 二维: 数据类型[ ][ ] 数组名; //声明二维数组 数组名=new 数据类型[行数][列数]; int[ ][ ] a; //声明二维整型数组a a=new int[3][4]; //分配一块内存空间,供三行四列的整型数组a使用. 也可以:int[ ][ ]=new 数据类型[行数][列数]; Scanner类用来获取用户的输入(p29) 想要获得二维数组的行数: x.length; 想要获得数组中某行数组的列数: 例如数组x的第一行元素的个数.x[0].length 数组x的第三行元素的个数:x[2].length 同时给二维数组声明和赋初值格式:例如 int[ ][ ] 数组名={{11,22,33,44},{55,66,77,88}} 16.字符常量:' ' 字符串常量:" " 字符串变量需要声明和创建对象 (1)String 变量名=new String(”字符串“) //声明并创建字符串变量 (2)String 变量名=”字符串“ +号运算符可以用于两个字符串的连接操作。 17.字符串的调用:字符串变量名.方法名( ); 18.remove方法删除被选元素. 第六章 1.类是对某一事物的描述,是抽象的概念上的定义.对象是类的一个实例,一个类可以对应多个对象 2.类包括属性与动作:属性包括成员变量与局部变量,动作是成员方法(不写static),静态方法/类方法是被static修饰的成员方法,实例方法是不被static修饰的成员方法 使用static修饰的成员变量是静态变量