JavaSE
一、java语言概述
1.软件 : 系统软件 vs 应用软件
2.人与计算机做交互:使用计算机语言。 图形化界面 vs 命令行方式 dir md rd cd cd.. cd/ del exit
3.语言的分类:第一代:机器语言 第二代:汇编语言 第三代:高级语言(面向过程 --- 面向对象) 4.java语言的特性:①面向对象性 ②健壮性 ③跨平台性(write once ,run anywhere)---JVM 5.安装JDK及配置path环境变量 1)傻瓜式安装JDK。 2)path:window操作系统在执行命令时所要搜寻的路径。 我们需要将jdk中bin目录所在的路径:D:\\Java\\jdk1.7.0_07\\bin 保存在path环境变量下。 3)测试:在命令行窗口,任意的文件目录下,执行javac.exe 或者java.exe都可以调用成功。
>河床好比操作底层,jdk好比是河水,java应用程序好比是船。 注意:JDK JRE JVM
6.如何编写并运行第一个java程序 【过程】编写----编译----运行
1)编写:每一个java文件都是.java结尾的,称为源文件【HelloWorld.java】。java程序就存在于源文件中
public class HelloWorld{
//程序的主方法,是程序的入口 public static void main(String args[]){ //要执行的代码
System.out.println(\} }
注意点:
Java源文件以“java”为扩展名。源文件的基本组成部分是类(class),如本类中的HelloWorld类。
一个源文件中最多只能有一个public类。其它类的个数不限,如果源文件包含一个public类,则文件名必 须按该类名命名。
Java应用程序的执行入口是main()方法。它有固定的书写格式:public static void main(String[] args) {...} Java语言严格区分大小写。
Java方法由一条条语句构成,每个语句以“;”结束。 大括号都是成对出现的,缺一不可。
2)编译: 在源文件所在的目录下,执行javac.exe 源文件名.java;生成诸多个.class结尾的字节码文件 3)运行:生成的字节码文件通过java.exe解释执行
7.会调试程序中出现的问题
8.注释: ①单行注释 // ②多行注释 /* */ (多行注释不能够嵌套)
③文档注释 /** */ javadoc -d 文件目录名 -author -version 源文件名.java;
9.JDK提供的关于旗下所有的包、类的文档:API 二、基本语法
(一)关键字 & 标识符
关键字:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)
保留字:
标识符:凡是自己可以起名字的地方都叫标识符
命名的规则:(一定要遵守,不遵守就会报编译的错误) 由26个英文字母大小写,0-9 ,_或 $ 组成 数字不可以开头。
不可以使用关键字和保留字,但能包含关键字和保留字。 Java中严格区分大小写,长度无限制。 标识符不能包含空格。
Java中的名称命名规范:(不遵守,也不会出现编译的错误) 包名:多单词组成时所有字母都小写:xxxyyyzzz
类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz 常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ (二)变量
1.java中变量按照数据类型来分类:基本数据类型 vs 引用数据类型(数组 类 接口) >基本数据类型:
整型:byte(8 bit) short int(默认类型) long 浮点型:float double (默认类型) 字符型:char(‘ ’)
布尔类型: boolean(只能取值为true 或false,不能取null)
补充:按照在类中存在的位置的不同:成员变量 vs 局部变量
2.进制(了解)
十进制 二进制 八进制 十六进制
二进制:计算机底层都是用二进制来存储、运算。 >二进制 与十进制之间的转换。 >二进制在底层存储:正数、负数都是以补码的形式存储的。(原码、反码、补码) >四种进制间的转换
3.变量的运算:
①自动类型转换:容量小的数据类型自动转换为容量大的数据类型。 short s = 12; int i = s + 2;
注意:byte short char之间做运算,结果为int型! ②强制类型转换:是①的逆过程。使用“()”实现强转。 (三)运算符
运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。 算术运算符:
+ - + - * / % ++ -- +
注意:1) /: int i = 12; i = i / 5; 2) %:最后的符号只跟被模数相同 3)前++:先+1,后运算 后++:先运算,后+1 4)+:String字符串与其他数据类型只能做连接运算,且结果为String类型。sysout('*' + '\\t' + '*'); vs sysout(\
赋值运算符:
= += -= *= /= %= int i= 12; i = i * 5;
i *= 5;//与上一行代码同样的意思 【特别地】 short s = 10;
s = s + 5;//报编译的异常 s = (short)(s + 5);
s += 5;//s = s + 5,但是结果不会改变s的数据类型。
比较运算符(关系运算符) == ><>= <= instanceof
【注意】区分== 与 = 区别。
进行比较运算操作以后,返回一个boolean类型的值 4>=3 表达的是4 > 3或者 4 = 3.结果是true。
if(i > 1 && i < 10){ } 不能写为:if(1 < i < 10){}
逻辑运算符(运算符的两端是boolean值) &&& | || ^ !
【注意】区分 & 与 && 的区别,以及 | 与 || 的区别 我们使用的时候,选择&& , ||
位运算符(两端是数值类型的数据) <<>>>>>& | ^ ~
【例子】1.如何交换m = 12和n = 5的值
2.将60转换为十六进制输出。 三元运算符
(条件表达式)? 表达式1 : 表达式2;
1)既然是运算符,一定会返回一个结果,并且结果的数据类型与表达式1,2的类型一致 2)表达式1与表达式2 的数据类型一致。
3)使用三元运算符的,一定可以转换为if-else。反之不一定成立。 例子:获取两个数的较大值;获取三个数的最大值。 (四)流程控制
1.顺序结构
>程序从上往下的顺序执行
2.分支结构: if-else switch-case
3.循环结构: while(){} do{}while() for(;;){}
4.1分支结构
1.条件判断:
①if(条件表达式){ }
②if(条件表达式){ //执行的语句1; }else{ //执行的语句2; }
③if(条件表达式1){ //执行的语句1; }else if(条件表达式2){ //执行的语句2; }else if( 条件表达式3){ //执行的语句3; }... }else{
//执行的语句; }
【注意】
1.一旦满足某个条件表达式,则进入其执行语句块执行,执行完毕,跳出当前的条件判断结构,不会执行其以下的条件结构语句。
2.如果诸多个条件表达式之间为“互斥”关系,多个结构可以上下调换顺序
如果诸多个条件表达式之间为“包含”关系,要求条件表达式范围小的写在范围大的上面。
2.选择结构 switch(变量){ case 值1: //break;
case 值2: //break; ... default: break; }
【注意】
1.变量可以为如下的数据类型:byte short int char 枚举 String 2.case后只能填写变量的值,不能写范围。
3.default是可以省略的。并且其位置也是灵活的,但是通常将其放在case语句之后。 4.一旦满足某个case语句,则进入执行其操作。直至遇到break或者程序终止。
5.若要判断的语句的条件满足switch变量的数据类型,且值不多的情况下,建议选择switch-case . 除此之外,选择if-else.
4.2循环结构
1.格式:
①初始化条件 ②循环条件 ③迭代部分 ④循环体
for(①;②;③){ ④ } ①
while(②){ ④ ③ }
① do{
④ ③ }while(②);
注:1.不同的循环结构之间可以相互转换
2.while和do-while的区别:do-while程序至少会执行一次
2.嵌套循环:循环结构还可以声明循环。让内层循环结构整体充当外层循环的循环体。 若外层循环执行m次,内层循环执行n次,整个程序执行m*n次。
【题目】 ****** ****** ******
for(int i = 0;i < 3;i++){ for(int j = 0;j < 6;j++){ System.out.print(\ } System.out.println(); }
说明:外层循环控制行数,内层循环控制列数 【例题】1.九九乘法表 2.输出100内的质数。(两种)
3.无限循环结构 for(;;){ ... if( ){ break;

