热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

day10回顾

day10课堂笔记1、今天三件事第一:回顾之前所有的内容第二:讲解昨天的所有作业题第三:布置大量的练习题,坚决这个周末大家

day10课堂笔记

1、今天三件事
第一:回顾之前所有的内容
第二:讲解昨天的所有作业题
第三:布置大量的练习题,坚决这个周末大家把之前所学习的所有内容全部掌握。

2、回顾
2.1、windows操作系统中,文件扩展名的展示。
2.2、安装EditPlus并且进行相关配置。
2.3、windows的dos命令
cls 清屏
exit 退出
ipconfig 查看IP地址
ping 查看两台计算机之间是否可以正常通信
d: 回车 切换盘符
cd 命令切换目录:相对路径和绝对路径
C:\Windows>cd System32 相对路径(相对于当前位置而言)
C:>cd c:\windows\system32 绝对路径(路径以盘符开始)
cd … 回到上级
cd \ 回到根
mkdir 创建目录
del 删除文件
dir 查看当前目录下有哪些子目录或者子文件

注意:
在DOS命令窗口中,可以使用tab键自动补全。
在DOS命令窗口中,使用上下箭头可以翻出历史命令。
2.4、快捷键:
补充两个windows系统的组合键:
win + r 打开运行窗口
win + d 显示桌面
win + l 锁屏(离开电脑的时候要锁屏)
alt + tab 切换应用
2.5、计算机语言的发展史
第一代
第二代
第三代
2.6、Java语言的发展史
JDK:java开发工具包
JavaSE JavaEE JavaME
SUN公司开发的,带头人:james gosling java之父
2.7、java语言的特点:
简单性
多线程
面向对象
可移植,跨平台:因为JVM的存在。(Java虚拟机屏蔽了操作系统之间的差异)
windows上安装的JDK和Linux上安装的JDK的版本不同。
JDK版本不同,最终JVM的版本也是不同的,每一个操作系统都有自己的JVM。
健壮性:自动GC垃圾回收机制。
2.8、java的加载与执行(java从开发到最终运行,经历了哪些过程)
要求:自己能够从头描述到最后。(不参考任何资料的前提下)
从编写到最终的运行,把过程描述出来。
第一步:
第二步:
.....
2.9、术语
JDK JRE JVM
JDK java开发工具包
JRE java运行时环境
JVM java虚拟机
JavaSE JavaEE JavaME
2.10、开始开发第一个java程序HelloWorld
第一:要会下载对应版本的JDK(http://www.oracle.com)
第二:要会安装JDK(双击,下一步)
第三:配置环境变量path
path=C:\Program Files\Java\jdk-13.0.2\bin
这样javac和java命令就可以使用了。
第四:编写HelloWorld.java程序。
第五:javac进行编译:
javac命令在使用的时候
javac + java源文件的路径(注意:路径包括绝对和相对。)
第六:java命令进行运行
java 类名 (一定要注意:这里不是路径。是类名)
这里涉及到另一个环境变量叫做:classpath
classpath没有配置的情况下:从当前路径下找xxx.class文件
classpath设置了具体路径之后,不再从当前路径下找了。

重点掌握path和classpath两个环境变量。
2.11、java语言中的注释:
// 单行注释
/*
多行注释
*/
/**
* javadoc注释
*/
2.12、public class 和class的区别
一个java文件中可以定义多个class
一个class编译之后会生成1个class字节码文件,2个class编译之后会生成2个class文件
任何一个class中都可以编写main方法,每一个main方法都是一个入口
public的类可以没有
public的类如果有的话,只能有1个,并且public的类名要求和文件名一致。
class A{
main(){}
}
java A
class B{
main(){}
}
java B
....
2.13、标识符
标识符可以标识什么?
类名、接口名
变量名、方法名
常量名
标识符的命名规则?
标识符只能由数字 字母(可以有中文) 下划线 美元符号组成,不能有其它符号。
标识符不能以数字开始
标识符严格区分大小写
关键字不能做标识符
理论上没有长度限制
标识符的命名规范?
见名知意
驼峰命名方式,一高一低
类名、接口名:首字母大写,后面每个单词首字母大写。
变量名、方法名:首字母小写,后面每个单词首字母大写。
常量名:全部大写,每个单词之间使用下划线衔接。
标识符在editplus中是黑色字体。
2.14、关键字
关键字都是全部小写的,在editplus中以蓝色显示。
不需要特意记忆,一边学习一边记忆。
public
class
static
void
byte
short
int
long
float
double
boolean
char
true
false
if
else
switch
for
while
break
continue
........
2.15、变量
什么是变量,怎么理解的?
一个存储数据的盒子,
一个存储数据的单元。
int i = 100;
System.out.println(i);
什么是字面量,怎么理解的?
1 2 3 4 -100 100 整数型字面量
3.14 浮点型的字面量。
true false 布尔型字面量
'a' '中' 字符型字面量
"abc" "a" 字符串型的字面量
字面量其实本质上就是“数据”。
变量怎么声明,怎么赋值?
声明:
数据类型 变量名;
int i;
赋值:用=赋值
变量名 = 字面量;
i = 100;
重新赋值:i = 200;
变量在同一个域当中不能重名。
{
int i = 2;
double i = 2.0;
//报错了,重名了。
}
变量的分类?
在方法体当中声明的就是局部变量。
在方法体外面声明的就是成员变量。
变量的作用域?
出了大括号就不认识了。
每一个变量都有自己的有效范围。出了范围就不认识了,就不能用了。
2.16、数据类型
1. 什么是数据类型,有啥用?
数据类型决定了变量分配空间的大小,类型不同,空间大小不同。
(在内存中分配空间)
计算机的主要部件:CPU 内存 硬盘 主板。
2、数据类型分类?
基本数据类型:
byte short int long float double boolean char
引用数据类型:
String..........
3、要求要理解二进制
4、要求理解二进制和十进制之间的互相转换。
5、8种基本数据类型,每个占用空间大小。
类型 字节
------------------
byte 1
short 2
int 4
long 8
float 4
double 8
boolean 1
char 2
6、记忆byte short int char的取值范围:
byte -128 ~ 127
short -32768 ~ 32767
int -2147483648 ~ 2147483647
char 0~65535
7、理解字符编码?
什么时候会有乱码?编码和解码采用的不是同一套字符编码方式。
怎么理解字符编码?字符编码是人为制定的,一个字典表,字典中描述了转换关系。
常见的字符编码?
ASCII:
'a' 97
'A' 65
'0' 48
...
ISO-8859-1(latin-1)
GBK
GB2312
GB18030
Big5
unicode : java中采用的统一了全球所有的文字。
8、数据类型详细介绍
char
可以存储1个汉字
用单引号括起来
转义字符:
\t
\n
\'
\"
\\
\u
....
char c = 97;
System.out.println(c); //输出'a'
byte short int long
int最常用
任何一个数字,例如:1232 3 5 9,默认都是当做int处理,想当做long,必须加L或者l
123L这就是long类型
自动类型转换:小-->大
强制类型转换:大-->小,需要加强制类型转换符。另外运行可能损失精度。
当一个整数没有超出byte short char的取值范围,
可以直接赋值给byte short char类型的变量。
在java中整数型字面量表示的时候有四种方式:
10 十进制
010 八进制
0x10 十六进制
0b10 二进制
float double
浮点型的数字默认被当做double来处理,
想以float形式存在,数字后面添加F/f
float f = 1.0; //错误的
float f = 1.0f;
float f = (float)1.0;
要知道浮点型数据在java语言中存储的都是近似值。
还有一点:float和double的空间永远比整数型空间大,比long大。
boolean
boolean类型只有两个值:true false,没有其他值。
布尔类型使用在逻辑运算,条件判断当中。
9、基本数据类型转换的6条规则:
第一条:只有boolean不能转换,其它都行。
第二条:自动类型转换
byte char可以取到更大的正整数。
第三条:强制类型转换需要加强制类型转换符。可能损失精度。
第四条:当一个整数没有超出byte short char的取值范围时,可以直接赋值
给byte short char类型的变量。
第五条:byte short char混合运算的时候,各自先转换成int再做运算。
第六条:多种数据类型混合运算的时候,先转换成容量最大的那一种再做运算。
2.17、运算符
算术运算符
+ - * / % ++ --
重点:++
++无论出现在变量前还是后,只要++运算结束,一定会自加1.
int i = 10;
i++;
System.out.println(i); // 11
int k = 10;
++k;
System.out.println(k); // 11
++出现在变量前:
int i = 10;
int k = ++i;
System.out.println(k); // 11
System.out.println(i); // 11

++出现在变量后:
int i = 10;
int k = i++;
System.out.println(k); // 10
System.out.println(i); // 11

int i = 10;
System.out.println(i++); // 10
解开以上题目的窍门是什么?拆代码
int temp = i++;
System.out.println(temp); // 10
System.out.println(i); // 11

int i = 10;
System.out.println(++i);
会拆代码:
int temp = ++i;
System.out.println(temp); // 11
System.out.println(i); // 11
关系运算符
>
>=
<
<&#61;
&#61;&#61;
!&#61;
结果都是布尔类型。true/false
逻辑运算符
&
|
!
&&
||
逻辑运算符要求两边都是布尔类型&#xff0c;并且最终结果还是布尔类型。
左边是布尔类型 & 右边还是布尔类型 -->最终结果还是布尔类型。
& 两边都是true&#xff0c;结果才是true
| 一边是true&#xff0c;结果就是true
! 取反
&&实际上和&运算结果完全相同&#xff0c;区别在于&#xff1a;&&有短路现象。
左边的为false的时候&#xff1a;&& 短路了。
左边为true的时候&#xff1a;|| 短路了。
赋值运算符
&#61;
&#43;&#61;
-&#61;
*&#61;
/&#61;
%&#61;
重要规则&#xff1a;
扩展赋值运算符在使用的时候要注意&#xff0c;不管怎么运算&#xff0c;最终的
运算结果类型不会变。
byte x &#61; 100; // byte最大值127
x &#43;&#61; 1000; // 编译可以通过&#xff0c;x变量还是byte类型&#xff0c;只不过损失精度了。
x &#43;&#61; 1000; 等同于&#xff1a; x &#61; (byte)(x &#43; 1000);

int i &#61; 10;
i &#43;&#61; 10; // 等同于&#xff1a;i &#61; i &#43; 10; 累加。

条件运算符
?:
三目
布尔表达式 ? 表达式1:表达式2
布尔表达式为true&#xff0c;选择表达式1作为结果。
反之选择表达式2作为结果。
字符串连接运算符
&#43;
&#43; 两边都是数字&#xff0c;进行求和。
&#43; 有一边是字符串&#xff0c;进行字符串的拼接。
&#43; 有多个的话&#xff0c;遵循自左向右依次执行&#xff1a;1 &#43; 2 &#43; 3
如果想让其中某个加号先执行&#xff0c;可以添加小括号&#xff1a;1 &#43; (2 &#43; 3)
注意&#xff1a;字符串拼接完之后的结果还是一个字符串。
技巧&#xff1a;怎么把一个变量塞到一个字符串当中。
String name &#61; "jackson";
System.out.println("登录成功&#xff0c;欢迎"&#43;name&#43;"回来");
2.18、控制语句
选择语句
if
switch
循环语句
for
while
do..while
转向语句
break;
continue;
return;

1、选择语句/分支语句 if
四种写法。
语法机制&#xff1a;
if(布尔表达式){
}

if(布尔表达式){
}else{
}
if(布尔表达式){
}else if(布尔表达式){
}else if(布尔表达式){
}else if(布尔表达式){
}else if(布尔表达式){
}
if(布尔表达式){
}else if(布尔表达式){
}else if(布尔表达式){
}else if(布尔表达式){
}else if(布尔表达式){
}else{
}
if语句嵌套&#xff1a;
if(布尔表达式){ //前提条件
if(布尔表达式){
if(布尔表达式){

}else{

}
}
}else{

}

执行原理&#xff1a;
对于一个if语句来说&#xff0c;只要有1个分支执行&#xff0c;整个if语句结束。
当布尔表达式的结果为true时&#xff0c;分支才会执行。
分支当中只有一条java语句&#xff0c;大括号可以省略。
带有else的可以保证肯定会有一个分支执行。
2、选择语句/分支语句 switch
完整语法结构&#xff1a;
switch(值){ //值允许是String、int&#xff0c;&#xff08;byte,short,char可以自动转换int&#xff09;
case 值1: case 值x:
java语句;
break;
case 值2:
java语句;
break;
case 值3:
java语句;
break;
default:
java语句;
}
3、for循环
for循环语法机制&#xff1a;
for(初始化表达式;条件表达式;更新表达式){
循环体;
}
for(int i &#61; 0; i <10; i&#43;&#43;){
System.out.println(i);
}
for循环执行原理&#xff1a;
1、先执行初始化表达式&#xff0c;并且只执行1次。
2、然后判断条件表达式
3、如果为true&#xff0c;则执行循环体。
4、循环体结束之后&#xff0c;执行更新表达式。
5、继续判断条件&#xff0c;如果条件还是true&#xff0c;继续循环。
6、直到条件为false&#xff0c;循环结束。
4、while循环
while(布尔表达式){
循环体;
}
执行次数&#xff1a;0~N次。
5、do..while循环
do{
循环体;
}while(布尔表达式);
执行次数&#xff1a;1~N次。
6、break;
默认情况下&#xff0c;终止离它最近的循环。
当然&#xff0c;也可以通过标识符的方式&#xff0c;终止指定的循环。
for(int i &#61; 0; i <10; i&#43;&#43;){
if(i &#61;&#61; 5){
break;
}
code1;
code2;
code3;
code4;
....
}
7、continue;
终止当前“本次”循环&#xff0c;直接跳入下一次循环继续执行。
for(int i &#61; 0; i <10; i&#43;&#43;){
if(i &#61;&#61; 5){
continue;
}
code1;
code2;
code3;
code4;
....
}






推荐阅读
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • 先看官方文档TheJavaTutorialshavebeenwrittenforJDK8.Examplesandpracticesdescribedinthispagedontta ... [详细]
  • 纠正网上的错误:自定义一个类叫java.lang.System/String的方法
    本文纠正了网上关于自定义一个类叫java.lang.System/String的错误答案,并详细解释了为什么这种方法是错误的。作者指出,虽然双亲委托机制确实可以阻止自定义的System类被加载,但通过自定义一个特殊的类加载器,可以绕过双亲委托机制,达到自定义System类的目的。作者呼吁读者对网上的内容持怀疑态度,并带着问题来阅读文章。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文讨论了Kotlin中扩展函数的一些惯用用法以及其合理性。作者认为在某些情况下,定义扩展函数没有意义,但官方的编码约定支持这种方式。文章还介绍了在类之外定义扩展函数的具体用法,并讨论了避免使用扩展函数的边缘情况。作者提出了对于扩展函数的合理性的质疑,并给出了自己的反驳。最后,文章强调了在编写Kotlin代码时可以自由地使用扩展函数的重要性。 ... [详细]
  • 如何搭建Java开发环境并开发WinCE项目
    本文介绍了如何搭建Java开发环境并开发WinCE项目,包括搭建开发环境的步骤和获取SDK的几种方式。同时还解答了一些关于WinCE开发的常见问题。通过阅读本文,您将了解如何使用Java进行嵌入式开发,并能够顺利开发WinCE应用程序。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有