目录

第一章

第二章

java语言特点

JDK和JRE

转义字符:

注释:

相对路径和绝对路径

常用dos命令

第三章

变量三要素:

加号+的使用:

Java API

基本数据类型转换

强制类型转换

String和基本数据类型转换

第四章

运算符介绍

算术运算符

关系运算符

逻辑运算符

练习题:

赋值运算符

三元运算符

运算符优先级

标识符

命名规则

关键字

键盘输入语句

进制

进制转换

一、其他进制转换为十进制

二、十进制转换为其他进制

三、除十进制外的转换

原码、反码、补码(重点、难点)

位运算符详解

第五章程序控制结构

顺序控制

分支控制 if-else

1) 单分支 if

2) 双分支 if-else

3) 多分支 if-else if -....-else

嵌套分支

switch 分支结构

语法

流程图

for循环

基本语法

流程图

使用细节

while 循环控制

基本语法

流程图

do..while 循环控制

多重循环(重点、难点)

break语句

流程图

Continue

基本语法

流程图

练习题

第一题

第四题

第六题:每五个一行

第七题

第八题

第九题



内容汇总

第一章

java就业环境和应用领域的介绍

第二章

1995年发布第一个java版本

java语言特点

(1)面向对象的

(2)健壮的

(3)跨平台性(依靠java虚拟机JVM实现)

(4)解释型语言

JDK和JRE

JDK=JRE + java开发工具(javadoc,javac等)

JRE= JVM+java的核心类库

转义字符:

\t制表位 ;

\n换行 ;

\r回车

\\表示 \;

\"表示"

\'表示'

注释:

1) 单行注释 //

2) 多行注释 /* */

3) 文档注释 /** */

实际运用:

/**

* @author 韩顺平

* @version 1.0

*/

相对路径和绝对路径

相对路径:从当前目录开始定位形成的一个路径

绝对路径:从根目录(C盘或者D盘)开始定位形成的一个路径

常用dos命令

dir:查看当前目录是有什么内容

切换盘符 D:

切换路径:cd

清屏:cls

退出:exit

第三章

变量三要素:

变量名、值、数据类型

加号+的使用:

1)左右两边都是数值型时做加法运算 2)有一方是字符串时做拼接运算

数据类型(重点!)

浮点数=符号位+指数位+尾数位

小数2.7和3/8.1在计算机中并不是相等的,其输出的是近似于2.7的一个小数

Java API

Java提供的基本编程接口

 基本数据类型转换

(byte、short)和char之间不会相互自动转换

byte,short,char 他们三者可以计算,在计算时首先转换为 int 类型

byte b2 = 1;

byte b3 = 2;

那么b2+b3也就自动转换为了int型数据

强制类型转换

用()即可,如int i = (int)1.9;

如变量是公式则用小括号 int i = (int)(1.9*4+3.2)

String和基本数据类型转换

1)Stiring转基本类型: +""即可,int n1 = 5; String s1 = n1 + "";

2)基本类型转换到String:调用parseXX方法

String s1 = "123";

int num1 = Interger.parseInt(s1);

float num2 = Float.parseFloat(s1);

boolean b = Boolean.parseBoolean("true");

字符串转成字符:取出字符串的第一个字符

​​​​System.out.println(s1.charAt(0));//外国人从0开始数数,得到s1的第一个字符1"

第四章

运算符介绍

1) 算术运算符

2) 赋值运算符

3) 关系运算符 [比较运算符]

4) 逻辑运算符

5) 位运算符 [需要二进制基础]

6) 三元运算符

算术运算符

正号、负号、加、减、乘、除、取模(余)、自增、自减、字符串相加(拼接)

除法/:整数之间做除法时只保留整数部分舍弃小数部分

在 % 的本质 看一个公式!!!! a % b = a - a / b * b

自增:++

两种情况

1)先取值再运算 a = 2 ; b = a++;则 a = 3 ; b = 2;

2)先运算再取值 a = 2 ; b = ++a;则 a = 3 ; b = 3;

自减:同理自增

1)先取值再运算 a = 2 ; b = a--;则 a = 1 ; b = 2;

2)先运算再取值 a = 2 ; b = --a;则 a = 1 ; b = 1;

关系运算符

关系运算符的结果都是 boolean 型,true或者false

逻辑运算符

1) 短路与 && , 短路或 ||,取反 !

短路与&&:有F则F;若左边有F则不再判断右边

短路或||:有T则T;若左边有T则不再判断右边

取反:若a为true,结果是false

2) 逻辑与 &,逻辑或 |,^ 逻辑异或

逻辑与&:有F则F;若左边有F则继续判断右边

逻辑或||:有T则T;若左边有T则继续判断右边

异或^:两者不同时为true;两者同为true或者false时,结果是false

练习题:

public class Review{public static void main(String[] args){boolean x = true;boolean y = false;short z = 46;if((z++ == 46)&&(y = true));z++;if((x = false)||(++z == 49));z++;System.out.println("z=" + z);}
}

运行分析如下图

此题目的两个陷阱:赋值语句 y = true 和 x = false;

y = true;将true赋值给y,此条件为true

x = false;将false赋值给x,此条件为false

赋值运算符

基本赋值运算符 =

复合赋值运算符 += ,-= ,*= , /= ,%= 等

a += b; 即 a = a + b;

a -= b; 即 a = a - b;

注意事项:

复合赋值运算符会进行类型转换

byte b = 3; b += 2; // b+2是int型;自动转换 b = (byte)(b + 2);

b++; // b = (byte)(b+1);同上

三元运算符

基本语法 条件表达式 ? 表达式 1:表达式 2;

口诀: [一灯大师:一真大师]

条件表达式为true,则运算后的结果是表达式 1;

反之则为表达式2

细节:表达式 1 和表达式 2 要为可以赋给接收变量的类型(或可以自动转换或强制转换)

public class TernaryOperatorDetail{public static void main(String[] args){//编写一个main方法//表达式 1 和表达式 2 要为可以赋给接收变量的类型(或可以自动转换或强制转换)int a = 10;int b = 99;//result为int型变量,3.1和4.2为double型变量,从double转换到int可能会有损失//int result = a > b ? 3.1:4.2;int result = a > b ? (int)3.1 : (int)4.2;//强制类型转换double result1 = a > b ? 3.1 : 4.2;//前后都是double型变量System.out.println("result=" + result);System.out.println("result1=" + result1);//三元运算符可以转成 if--else 语句if(a > b){System.out.println("result1=" + 3.1);}else{System.out.println("result1=" + 4.2);}}}

运算符优先级

只有单目运算符和赋值运算符是从右到左的,单目运算符是指只有一个操作数(++a;a++)

使用多了就熟悉了

标识符

命名规则

(必须遵守)特别重要

                ①由26个英文字母大小写,0到9,_或$组成

               ②不能用数字开头,如 int 5n 就是错的

                ③不可以直接使用关键字和保留字,但是可以包含关键字和保留字(如class public goto)//goto是保留字,即现在不用但是将来可能会用到

                ④java中严格区分大小写,长度不受限制,abc和Abc aBc abC是不同的变量 

                ⑤标识符中不能包含空格,比如 int a b = 90,这种写法是错误的
规范

包名:全都是小写字母,用.来间隔

类名和接口名:多个单词组成时,第一个字母大写,eg:TernaryOperator;大驼峰

变量名:多个单词组成时,第一个单词的第一个字母小写,后面的单词的第一个字母大写eg:totalNum;stuName;小驼峰

常量名:所有字母都要大写,单词之间用_连接(与包名对照)eg:XXX_YYY_ZZZ

关键字

被java赋予了特殊含义,用作专门用途的字符串

所有字母都是小写

关键字不能作为标识符

键盘输入语句

import java.util.Scanner;//表示把java.util下的Scanner类导入到此文件

Scanner myScanner = new Scanner(System.in)创建一个Scanner对象

不同数据类型接收输入时使用的方法不同

int型 int age = myScanner.nextInt();

double型  double salary= myScanner.nextDouble();

char型  char gender = myScanner.next().charAt(0);

String型 String name = myScanner.next();

进制

基本功,整数的四种表达形式

二进制:只有两个数字0、1 ,满 2 进 1,以 0b 或 0B 开头,如:0B01010

十进制:0-9 ,满 10 进 1。

八进制:0-7 ,满 8 进 1, 以数字 0 开头表示。

十六进制:0-9 及 A(10)-F(15),满 16 进 1,以 0x 或0X为开头,A-F不区分大小写

进制转换

一、其他进制转换为十进制

1)二转十

从最低位(右边)开始,将每个位上的数提出来乘以2的(位数-1)次方

eg: 0b1101011=1*2^0+1*2^1+0*2^2+1*2^3+0*2^4+1*2^5+1*2^6

=1+2+0+8+0+32+64

=107

2)八转十

从最低位(右边)开始,将每个位上的数提出来乘以8的(位数-1)次方

eg:04723=3*8^0+2*8^1+7*8^2+4*8^3

=3+16+448+2048

=2515

3)十六转十

从最低位(右边)开始,将每个位上的数提出来乘以16的(位数-1)次方

eg:0XB63=3*16^0+6*16^1+11*16^2

=3+96+2816

=2915

二、十进制转换为其他进制

1)十转二

规则:将该数不断除以 2,直到商为 0 为止,然后将每步得到的余数倒过来,就是对应的二进制。

eg:123转换成二进制,结果为0B0111 1011

2)十转到八

规则:将该数不断除以 8,直到商为 0 为止,然后将每步得到的余数倒过来,就是对应的八进制。

eg :131转成八进制,结果为0203

3)十转到十六

规则:将该数不断除以 16,直到商为 0 为止,然后将每步得到的余数倒过来,就是对应的十六进制。

案例:请将 237 转成十六进制,结果为0xED

三、二、八、十六之间的转换

1)二转到八

从低位(右边)开始,将二进制数每三位一组(不足的补零),从左往右依次写上421,然后计算,eg 0B0010 1111转成八进制为057

2)二转到十六

将十六进制数每 1 位,转成对应的 4 位的一个二进制数即可。8421法则

eg:ob0010 1111换成十六进制为0X2F;

 3)八转到二

421倒转计算,eg:0237

2=4*0+2*1*1*0,转成二进制就是010

3=4*0+2*1*1*1,转成二进制就是011

7=4*1+2*1*1*1,转成二进制就是111

转成二进制就是0B1001 1111

4)十六转二

8421倒转计算,eg: 0x23B

2=8*0+4*0+2*1+1*0(0010)

3=8*0+4*0+2*1+1*1(0011)

B(11)=8*1+4*0+2*1+1*1(1011)

结果是0B0010 0011 1011

计算机内部处理的信息都是采用的二进制

原码、反码、补码(重点、难点)

八个重要知识点

1.二进制的最高位(最左边)是符号位,0表示正数,1表示负数

2.正数的原码、反码、补码都是一样的(三码合一)

3.负数的反码=符号位不变,其他的取原码的反值(反码转原码同理)

4.负数的补码=它的反码+1;反码=补码-1;

5.0的反码补码都是0

6.java没有无符号数,换言之,java中的数都是有符号的

7.在计算机运算的时候,是以补码的方式来运算的

8.当我们看运算结果的时候,要看它的原码

位运算符详解

java中有7个位运算符(&、|、^、~、>>、<<和 >>> )

按位与 & :两位全为1,结果为1,否则为0(把逻辑运算符中的true和false替换成1和0)

按位或  | :两个有一个为1,结果为1,否则为0

按位异或 ^   两个数相同(同为0或者同为1)结果为0,两个数不同(一个为1,一个为0)结果为1,与逻辑异或大同小异

按位取反  ~    :0变1,1变0

算术右移>>:①正数时:1>>3,计算公式1\2^3,②负数时:-1>>3,求出-1的补码,向右移三位,空缺用1补齐,再求出此结果的原码

算术左移<<:①正数时:1>>3,计算公式1*2^3,②负数时:-1>>3,求出-1的补码,向左移三位,空缺用0补齐,再求出此结果的原码

无符号右移 >>>:右移的空缺全部用0补全,不用符号位补     正数运算同算术右移,负数运算空缺是用0补全,就是最终结果,不用再推算反码和原码     

未解决的问题 -1 >>>2

解决办法:反码右移后直接输出结果,不用推算反码和原码

第五章程序控制结构

1) 顺序控制 2) 分支控制 3) 循环控制

顺序控制

按照代码顺序执行,中间没有任何判断和跳转

分支控制 if-else

分为三种

1) 单分支 if

流程图

2) 双分支 if-else

流程图

3) 多分支 if-else if -....-else

基本语法

多分支的流程图(重要!) 

当所有条件表达式都不成立的时候,执行else的代码块,只有1个入口

赋值语句:

public class If04{//编写一个main方法public static void main(String[] args){boolean b = true;if(b = false){//赋值语句,b被重新赋值为false,System.out.println("a");}else if(b){// b为false,不执行此代码块System.out.println("b");}else if(!b){//b为false,取反为true,打印cSystem.out.println("c");}else{System.out.println("d");}}
}

关系判断语句

public class If04{//编写一个main方法public static void main(String[] args){boolean b = true;if(b == false){//判断语句,b!=false,不执行此代码块System.out.println("a");}else if(b){// b为true,执行此代码块System.out.println("b");}else if(!b){//System.out.println("c");}else{System.out.println("d");}}
}

嵌套分支

在一个分支结构中又完整的嵌套了另一个完整的分支结构,最多不超过三层

语法

switch 分支结构

在java中只要是一个表达式就会有一个值返回

语法

说明:将表达式的值一次与常量1、2、3等匹配,匹配成功就执行语句块,break退出这个swtich语句,如果所有的都没有匹配成功则执行default语句

流程图

说明:1)在java中只要有返回值,就是一个表达式2)表达式的返回值必须是char,byte,short,int,string,enum(枚举) 3)case后面接的必须是常量

for循环

基本语法

流程图

使用细节

1) 循环条件是返回一个布尔值的表达式

2) for(;循环判断条件;) 中的初始化和变量迭代可以写到其它地方,但是两边的分号不能省略。

3) 循环初始值可以有多条初始化语句,但要求类型一样,并且中间用逗号隔开,循环变量迭代也可以有多条变量迭代 语句,中间用逗号隔开  eg: for(int i = arr.length - 1, j = 0; i >= 0; i--, j++);

while 循环控制

基本语法

流程图

do..while 循环控制

流程图

do..while 循环是先执行,再判断, 因此它至少执行一次

例子:还钱(难点)

多重循环(重点、难点)

将一个循环放在另一个循环体内,就形成了嵌套循环。

设外层循环次数为 m 次,内层为 n 次,则内层循环体实际上需要执行 m*n 次。

break语句

生成随机数的接口:

Matn.random();//生成0.0到1.0之间的double型数据

Matn.random()*100;//生成0.0到100.0之间的double型数据

(int)(Matn.random()*100);//生成0到99之间的整数

(int)(Matn.random()*100)+1;//生成1到100之间的整数

结束或者提前结束循环

流程图

细节:break可以通过标签指定结束哪一层的语句块,语法:break lable1;
        for(int i = 1; i <= 100; i++),i只在这个for循环里有用,当跳出这个for循环后就输出i就会报错

判断字符串相等的语法 :"丁真".equals(name)

break第二道练习题注意点:先在循环开始前定义好变量name和passWord

Continue

continue 语句用于结束本次循环,继续执行下一次循环。

continue 语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一层循环

基本语法

流程图

练习题

第一题

while(1 == 1)当循环条件为true时,进入无限循环,ctrl+c停止无限循环

第四题

水仙花数

一个五位数a

万位数为 a/10000;

千位数为a/1000%10;

百位数为a/100%10;

十位数为a/10%10;

个位数为 a%10;

四位数b

千位数为/1000;

百位数为b/100%10;

十位数为b/10%10;

个位数为 b%10;

三位数c

百位数为c/100;

十位数为b/10%10;

个位数为 b%10;

第六题:每五个一行

我写的代码

public class HomeWork06{public static void main(String[] args){int count = 0;for(int i = 1; i <= 100; i++){if(i % 5 != 0){count++;System.out.print(i + "\t");}if(count % 5 == 0){System.out.print("\n");}}}}

输出效果

多一行空行的原因:

n = 24时 count = 20,执行第一,二个if,打印 24 并打印一个换行符。 n = 25时,第一个if不执行,此时count 还是25,执行第二个if,再次打印一个换行符。

解决办法:把第二个if嵌套在第一个if里

public class HomeWork06{public static void main(String[] args){int count = 0;for(int i = 1; i <= 100; i++){if(i % 5 != 0){count++;System.out.print(i + "\t");if(count % 5 == 0){System.out.print("\n");}}}}}

n = 25时,外层if不执行,就不会出现上述情况

第七题

打印a-z和A-Z

char型变量可以直接运算,'b'='a'+1;'c'='a'+2;.....'z'='a'+25;同理大写

tips:1)int c1 = ; int c2 = 'a'

第八题

求1-1/2+1/3-1/4+...+1/99-1/100的和

初始代码

public class HomeWork08{public static void main(String[] args){//求1-1/2+1/3-1/4+...+1/99-1/100的和//分两种情况,当i为奇数是1/i,当i为偶数时,-1/idouble sum = 0;for(double i = 1; i <= 100; i++){if(i % 2 != 0){sum += 1/i;}else if(i % 2 == 0){sum -= 1/i;}}System.out.print(sum);   }}

运算结果为1.0

原因:sum += 1/i;1和都是int型数据,1/i的结果为0,赋值给double型数据sum,就是0.0

改正:1)sum += 1.0/i;  1.0为double型,1.0/i的结果也是double型

2)double i = 1;同上,1/i也变成了double型

第九题

求1+(1+2)+(1+2+3)+...+(1+2+..+100)的和

使用双重循环

public class HomeWork09{public static void main(String[] args){//求1+(1+2)+(1+2+3)+...+(1+2+..+100)的和//使用双重循环,类似于九九乘法表//外循环:int sum = 0;for(int i = 1; i <= 100; i++){for(int j = 1; j <= i; j++){sum = sum + j;}}System.out.print("sum=" + sum);                }}

Java基础一到五章复习笔记相关推荐

  1. Android深度探索--HAL与驱动开发----第五章读书笔记

    第五章主要学习了搭建S3C6410开发板的测试环境.首先要了解到S3C6410是一款低功耗.高性价比的RISC处理器它是基于ARMI1内核,广泛应用于移动电话和通用处理等领域. 开发板从技术上说与我们 ...

  2. Java基础学习——第六章 面向对象编程(下)

    Java基础学习--第六章 面向对象编程(下) 一.关键词:static 1. static关键字的引入 当我们编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实质上的对象,只有通过new ...

  3. Java基础知识强化之集合框架笔记76:ConcurrentHashMap之 ConcurrentHashMap简介

    1. ConcurrentHashMap简介: ConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和Hashtable功能相同但是线程安全的方法.Conc ...

  4. Java核心技术卷一 -第五章:装箱和拆箱

    系列文章目录 Java核心技术卷一 -第一章:java"白皮书"的关键术语 Java核心技术卷一 -第三章:数据类型 Java核心技术卷一 -第三章:变量与常量 Java核心技术卷 ...

  5. 软件工程导论第五章复习总结附思维导图及部分习题答案

    软件工程导论第五章复习总结附思维导图及部分习题答案 总体设计 一.设计过程 1.设想提供选择的方案 2.选取合理的方案 3.推荐最佳方案 4.功能分解 5.设计软件结构 6.设计数据库 7.制定测试计 ...

  6. 妙用计算机教案,计算机基础教案(第五章powerpoint用法).ppt

    计算机基础教案(第五章powerpoint用法).ppt 第五章 PowerPoint的应用 第一节 PowerPoint基本知识 第二节 演示文稿的创建 第三节 演示文稿的制作 (2)配色方案 幻灯 ...

  7. 第五章——决策树笔记(《统计学习方法》-李航)

    第五章--决策树笔记(<统计学习方法>-李航) 本文主要记录自己学习李航的小蓝书的过程,之前的4张有时间再补上.本文只做知识点整理,不做详细的见解,因为我认为,依照本人的知识水平,不可能比 ...

  8. Java核心技术卷一 -第五章:类的强制类型转换与instanceof操作符

    系列文章目录 Java核心技术卷一 -第一章:java"白皮书"的关键术语 Java核心技术卷一 -第三章:数据类型 Java核心技术卷一 -第三章:变量与常量 Java核心技术卷 ...

  9. Java核心技术卷一 -第五章:枚举类再认识

    系列文章目录 Java核心技术卷一 -第一章:java"白皮书"的关键术语 Java核心技术卷一 -第三章:数据类型 Java核心技术卷一 -第三章:变量与常量 Java核心技术卷 ...

最新文章

  1. VUE.JS优势,初识。框架以及库的区别
  2. html制作nba网页,NBA篮球_实用电脑小技巧:通俗解答html 自己动手建一个非常简单的网页_沪江英语...
  3. java中字符串分割器_java简易文本分割器实现代码
  4. 正则表达式用单个空格替换多个空格
  5. python变量存为matlab,详解如何在python中读写和存储matlab的数据文件(*.mat)
  6. Java assertion 介绍和用法
  7. 一个SQL性能问题的优化探索(二)(r11笔记第38天)
  8. 长微博android,Android 上最强大的长微博工具:BlackLight 长微博
  9. nosql mysql mongodb_nosql数据库MongoDB的用法
  10. PyPA Installing Packages
  11. Android 学习资料汇总
  12. java使用ffmpeg完成视频加水印功能
  13. 明捧中文暗贬中文编程——看《英文字母已成现代中文一部分,争论汉字编程还是英文编程已无意义》
  14. 11n、11ac和11ax速率表
  15. pyth命令_如何:在Windows上设置用于从命令行运行.py文件的Python可执行文件
  16. 大魔王程序员生成记#01#C语言基础
  17. Dubbo源码分析(三) -- Dubbo的服务发现源码深入解析4万字长文
  18. Master和Slave是什么意思
  19. 【夯实Spring Cloud】Spring Cloud分布式配置中心详解
  20. 微信吸粉技巧:“傻逼”的毅力

热门文章

  1. 干货 | Android 8.0正式版发布:Android O 新特性和行为变更总结
  2. 深富策略:北交所即将“扣响”发令枪
  3. Hopfield神经网络的应用
  4. 猎头面试17年4月20日
  5. 【超详细】5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果
  6. oracle的考试题全英文,2018下半年英语四级考试翻译试题:甲骨文
  7. 惠普薄锐笔记本电脑HP ENVY x360-15-cn1001tx原装出厂Windows10系统恢复原厂OEM系统
  8. 支付宝支付功能(沙箱)
  9. PAT2019春7-2 Anniversary (25 分)(C++)
  10. 自定义拍照时 拍照界面_驾驶机动车发生财产损失交通事故后,当事人对事实及成因无争议移动车辆时需要对现场拍照或者标划停车位置。...