day1

注释

1.java规范的三种注释方式:

单行注释

多行注释

文档注释(java特有)

2.
单行注释和多行注释的作用:
① 对所写的程序进行解释说明,增强可读性。方便自己,方便别人
② 调试所写的代码

3.特点:单行注释和多行注释,注释了的内容不参与编译。换句话说,编译以后生成的.class结尾的字节码文件中不包含注释掉的信息

4.文档注释的使用:注释内容可以被JDK提供的工具 javadoc 所解析,生成一套以网页文件形式体现的该程序的说明文档。

5.多行注释不可以嵌套使用

对第一个java程序进行总结

1.java程序编写-编译-运行的过程
编写:我们将编写的java代码保存在以".java"结尾的源文件中
编译:使用javac.exe命令编译我们的java源文件。格式:javac 源文件名.java
运行:使用java.exe命令解释运行我们的字节码文件。 格式:java 类名

2.在一个java源文件中可以声明多个class。但是,只能最多有一个类声明为public的。
而且要求声明为public的类的类名必须与源文件名相同。

3.程序的入口是main()方法。格式是固定的。

4.输出语句:
System.out.println():先输出数据,然后换行
System.out.print():只输出数据

5.每一行执行语句都以";"结束。

6.编译的过程:编译以后,会生成一个或多个字节码文件。字节码文件的文件名与java源文件中的类名相同。

day2

计算机中不同进制的使用说明

对于整数,有四种表示方式:

二进制(binary):0,1 ,满2进1.以0b或0B开头。

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

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

十六进制(hex):0-9及A-F,满16进1. 以0x或0X开头表示。此处的A-F不区分大小写。如:0x21AF +1= 0X21B0

标识符的使用

1.标识符:凡是自己可以起名字的地方都叫标识符。

比如:类名、变量名、方法名、接口名、包名...

2.标识符的命名规则:--> 如果不遵守如下的规则,编译不通过!需要大家严格遵守

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

数字不可以开头。

不可以使用关键字和保留字,但能包含关键字和保留字。

Java中严格区分大小写,长度无限制。

标识符不能包含空格。

3.Java中的名称命名规范: --->如果不遵守如下的规范,编译可以通过!建议大家遵守

包名:多单词组成时所有字母都小写:xxxyyyzzz

类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz

变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz

常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ

4.
注意1:在起名字时,为了提高阅读性,要尽量有意义,“见名知意”。

注意2:java采用unicode字符集,因此标识符也可以使用汉字声明,但是不建议使用。

String类型变量的使用

1.String属于引用数据类型,翻译为:字符串

2.声明String类型变量时,使用一对""

3.String可以和8种基本数据类型变量做运算,且运算只能是连接运算:+

4.运算的结果仍然是String类型

变量的使用

1.java定义变量的格式:数据类型 变量名 = 变量值;

2.说明:
① 变量必须先声明,后使用
② 变量都定义在其作用域内。在作用域内,它是有效的。换句话说,出了作用域,就失效了
③ 同一个作用域内,不可以声明两个同名的变量

Java定义的数据类型

一、变量按照数据类型来分:

基本数据类型:
整型:byte \ short \ int \ long
浮点型:float \ double
字符型:char
布尔型:boolean
引用数据类型:

类(class)

接口(interface)

数组(array)

1.整型:byte(1字节=8bit) \ short(2字节) \ int(4字节) \ long(8字节)

① byte范围:-128 ~ 127

② 声明long型变量,必须以"l"或"L"结尾

③ 通常,定义整型变量时,使用int型。

2.浮点型:float(4字节) \ double(8字节)

① 浮点型,表示带小数点的数值

② float表示数值的范围比long还大

③ 定义float类型变量时,变量要以"f"或"F"结尾

④ 通常,定义浮点型变量时,使用double型。

3.字符型:char (1字符=2字节)

① 定义char型变量,通常使用一对'',内部只能写一个字符

② 表示方式:1.声明一个字符 2.转义字符 3.直接使用 Unicode 值来表示字符型常量

char c5 = '\n';//换行符
char c6 = '\u0043';//Unicode

4.布尔型:boolean

① 只能取两个值之一:true 、 false

② 常常在条件判断、循环结构中使用

二、变量在类中声明的位置:成员变量 vs 局部变量

自动类型提升:

结论:当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。
byte 、char 、short --> int --> long --> float --> double

特别的:当byte、char、short三种类型的变量做运算时,结果为int型

说明:此时的容量大小指的是,表示数的范围的大和小。比如:float容量要大于long的容量

强制类型转换:

自动类型提升运算的逆运算。

1.需要使用强转符:()

2.注意点:强制类型转换,可能导致精度损失。

double d1 = 12.9;
//精度损失举例1
int i1 = (int)d1;//强制类型转换,截断操作
System.out.println(i1);//12
//精度损失举例2

int i2 = 128;

byte b = (byte)i2;

System.out.println(b);//-128

day3

运算符之一:算术运算符

加+、 减-、 乘*、 除/、 取余%

自增自减:

(前)++ (后)++ (前)-- (后)--

(前)++ :先自增1,后运算
(后)++ :先运算,后自增1
自减同理

运算符之二:赋值运算符

=、 +=、 -=、 *=、 /=、 %=

开发中,如果希望变量实现+2的操作,有几种方法?(前提:int num = 10;)
方式一:num = num + 2;
方式二:num += 2; (推荐)
如果希望变量实现+1的操作:num++; (推荐)

运算符之三:比较运算符

==、 !=、 >、 <、 >=、 <=、 instanceof

结论:
1.比较运算符的结果是boolean类型
2.区分 == 和 =

特别说明:instanceof是Java中的二元运算符,左边是对象,右边是类;当对象是右边类或子类所创建对象时,返回true;否则,返回false。

运算符之四:逻辑运算符

&、 &&、 |、 ||、 !、 ^、

说明:
1.逻辑运算符操作的都是boolean类型的变量

区分& 与 &&:

相同点1:& 与 && 的运算结果相同

相同点2:当符号左边是true时,二者都会执行符号右边的运算

不同点:当符号左边是false时,&继续执行符号右边的运算。&&不再执行符号右边的运算。

开发中,推荐使用&&

区分:| 与 || :

相同点1:| 与 || 的运算结果相同

相同点2:当符号左边是false时,二者都会执行符号右边的运算

不同点3:当符号左边是true时,|继续执行符号右边的运算,而||不再执行符号右边的运算

开发中,推荐使用||

运算符之五:位运算符 (了解)

结论:
1. 位运算符操作的都是整型的数据
2. "<<"符号表示在一定范围内,每向左移1位,相当于 * 2;">>"符号表示在一定范围内,每向右移1位,相当于 / 2

运算符之六:三元运算符

1.结构:(条件表达式)? 表达式1 : 表达式2

//获取两个整数的较大值
int m = 12;
int n = 5;
int max = (m > n)? m : n;

System.out.println(max);

2.说明:
① 条件表达式的结果为boolean类型
② 根据条件表达式真或假,决定执行表达式1,还是表达式2.
如果表达式为true,则执行表达式1。
如果表达式为false,则执行表达式2。
③ 表达式1 和表达式2要求是一致的。
④ 三元运算符可以嵌套使用

3.凡是可以使用三元运算符的地方,都可以改写为if-else,反之,不成立。

4.如果程序既可以使用三元运算符,又可以使用if-else结构,那么优先选择三元运算符。原因:简洁、执行效率高。

day4

分支结构中的if-else(条件判断结构)

一、三种结构

第一种:

if(条件表达式){
执行表达式
}

第二种:二选一

if(条件表达式){
执行表达式1
}else{
执行表达式2
}

第三种:n选一

if(条件表达式){
执行表达式1
}else if(条件表达式){
执行表达式2
}else if(条件表达式){
执行表达式3
}
...
else{
执行表达式n
}

说明:

1.if-else结构是可以相互嵌套的。

2.如果if-else结构中的执行语句只有一行时,对应的一对{}可以省略的。但是,不建议大家省略。

如何从键盘获取不同类型的变量:需要使用Scanner类

具体实现步骤:

1.导包:import java.util.Scanner;

2.Scanner的实例化:Scanner scan = new Scanner(System.in);

3.调用Scanner类的相关方法(next() / nextXxx()),来获取指定类型的变量

注意:
需要根据相应的方法,来输入指定类型的值。如果输入的数据类型与要求的类型不匹配时,会报异常:InputMisMatchException导致程序终止。

举个例子

//1.导包:import java.util.Scanner;
import java.util.Scanner; class ScannerTest{
public static void main(String[] args){
//2.Scanner的实例化
Scanner scan = new Scanner(System.in); //3.调用Scanner类的相关方法
System.out.println(&quot;请输入你的姓名:&quot;);
String name = scan.next();
System.out.println(name); System.out.println(&quot;请输入你的芳龄:&quot;);
int age = scan.nextInt();
System.out.println(age); System.out.println(&quot;请输入你的体重:&quot;);
double weight = scan.nextDouble();
System.out.println(weight); System.out.println(&quot;你是否相中我了呢?(true/false)&quot;);
boolean isLove = scan.nextBoolean();
System.out.println(isLove); //对于char型的获取,Scanner没有提供相关的方法。只能获取一个字符串
System.out.println(&quot;请输入你的性别:(男/女)&quot;);
String gender = scan.next();//&quot;男&quot;
char genderChar = gender.charAt(0);//获取索引为0位置上的字符
System.out.println(genderChar); }

}

分支结构之二:switch-case

1.格式

switch(表达式){
case 常量1:
执行语句1;
//break; case 常量2:

执行语句2;

//break; ... default:

执行语句n;

//break;
}

2.说明:

① 根据switch表达式中的值,依次匹配各个case中的常量。一旦匹配成功,则进入相应case结构中,调用其执行语句。
当调用完执行语句以后,则仍然继续向下执行其他case结构中的执行语句,直到遇到break关键字或此switch-case结构
末尾结束为止。

② break,可以使用在switch-case结构中,表示一旦执行到此关键字,就跳出switch-case结构

③ switch结构中的表达式,只能是如下的6种数据类型之一:
byte 、short、char、int、枚举类型(JDK5.0新增)、String类型(JDK7.0新增)

④ case 之后只能声明常量。不能声明范围。

⑤ break关键字是可选的。

⑥ default:相当于if-else结构中的else.

default结构是可选的,而且位置是灵活的。

⑦ 如果switch-case结构中的多个case的执行语句相同,则可以考虑进行合并。

For循环结构的使用

一、循环结构的4个要素
① 初始化条件
② 循环条件 --->是boolean类型
③ 循环体
④ 迭代条件

二、for循环的结构

for(①;②;④){

}

执行过程:① - ② - ③ - ④ - ② - ③ - ④ - ... - ②

day5

嵌套循环的使用

1.嵌套循环:将一个循环结构A声明在另一个循环结构B的循环体中,就构成了嵌套循环

2.
外层循环:循环结构B
内层循环:循环结构A

3.说明
① 内层循环结构遍历一遍,只相当于外层循环循环体执行了一次
② 假设外层循环需要执行m次,内层循环需要执行n次。此时内层循环的循环体一共执行了m * n次

4.技巧:外层循环控制行数,内层循环控制列数

While 循环的使用

一、循环结构的4个要素
① 初始化条件
② 循环条件 --->是boolean类型
③ 循环体
④ 迭代条件

二、while循环的结构


while(②){
③;
④;
}

执行过程:① - ② - ③ - ④ - ② - ③ - ④ - ... - ②

说明:
1.写while循环千万小心不要丢了迭代条件。一旦丢了,就可能导致死循环!
2.我们写程序,要避免出现死循环。
3.for循环和while循环是可以相互转换的!
区别:for循环和while循环的初始化条件部分的作用范围不同。

算法:有限性。

do-while循环的使用

一、循环结构的4个要素
① 初始化条件
② 循环条件 --->是boolean类型
③ 循环体
④ 迭代条件

二、do-while循环结构:


do{
③;
④;
}while(②);

执行过程:① - ③ - ④ - ② - ③ - ④ - ... - ②

说明:
1.do-while循环至少会执行一次循环体!
2.开发中,使用for和while更多一些。较少使用do-while

break和continue关键字的使用

关键字 使用范围 循环中使用的作用(不同点) 相同点
break switch-case循环结构中 结束当前循环 关键字后面不能声明执行语句
continue 循环结构中 结束当次循环 关键字后面不能声明执行语句

尚硅谷Java——宋红康笔记【day1-day5】的更多相关文章

  1. 尚硅谷Java——宋红康笔记【day25-day29】

    day25 Map接口 一.Map的实现类的结构: |----Map:双列数据,存储key-value对的数据 ---类似于高中的函数:y = f(x) |----HashMap:作为Map的主要实现 ...

  2. 尚硅谷Java——宋红康笔记【day11-day18】

    day11 Eclipse中的快捷键: * 1.补全代码的声明:alt + / * 2.快速修复: ctrl + 1 * 3.批量导包:ctrl + shift + o * 4.使用单行注释:ctrl ...

  3. 尚硅谷Java——宋红康笔记【day19-day24】

    day19 测试Thread中的常用方法: start():启动当前线程:调用当前线程的run() run(): 通常需要重写Thread类中的此方法,将创建的线程要执行的操作声明在此方法中 curr ...

  4. 尚硅谷Java——宋红康笔记【day6-day10】

    day6 一.数组的概述 1.数组的理解:数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理. 2.数组相关的概念: 数组名 元素 ...

  5. 尚硅谷Java高级笔记

    尚硅谷Java高级笔记 idea的使用: 一些小区别: 其他细节参考idea配置pdf 多线程: 基本概念: 多线程的优点: 何时需要多线程: 线程的创建和使用: 创建多线程的第一种方式: /** * ...

  6. jdbc核心技术-宋红康

    视频地址 JDBC核心技术 第1章:JDBC概述 1.1 数据的持久化 持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用.大多数情况下,特别是企业级应用,数据持久化意味着将 ...

  7. 【宋红康学习日记1】关于环境变量设置出现的问题——找不到或无法加载主类 java

    忙活了一整天,最后被自己的小愚蠢所拜倒,不过也是学习到了很多,知道了出现问题怎样去解决. 问题是在cmd运行环境中编译我的第一个小程序HelloWorld时,javac命令可以运行,但是java命令后 ...

  8. 尚硅谷Java基础学习笔记

    综述: Java学习图谱: 常见dos命令: 操作案例: Java语言的特点: 面向对象 两个基本概念:类.对象 三个基本特性:封装.继承.多态 健壮性.可继承性 write once,run any ...

  9. 尚硅谷Java视频教程导航(学习路线图)

    最近很火,上去看了看,对于入门的人还是有点作用的,做个记号,留着以后学习. Java视频教程下载导航(学习路线图) 网站地址:http://www.atguigu.com/download.shtml

随机推荐

  1. 利用 ROP 技术绕过 DEP 保护的一次简单尝试

    \x 01 前言 DEP是数据执行保护的英文缩写,全称为Data Execution Prevention.数据执行保护(DEP) 是一套软硬件技术,能够在内存上执行额外检查以帮助防止在系统上运行恶意 ...

  2. Tomcat管理弱口令页面Getshell

    目录 弱口令Getshell 利用Burpsuite对tomcat账号密码进行爆破 弱口令Getshell Tomcat安装完成后会有如下页面,点击该页面的 Manager App 处会弹出输入用户名 ...

  3. ResNet学习笔记

    ResNet学习笔记 前言 这篇文章实在看完很多博客之后写的,需要读者至少拥有一定的CNN知识,当然我也不知道需要读者有什么水平,所以可能对一些很入门的基本的术语进行部分的解释,也有可能很多复杂的术语 ...

  4. 【vue-01】快速入门

    什么是vue vue是渐进式的JavaScript框架 什么是渐进式? ​ 你可以在原有大系统的上面,把一两个组件改用vue实现,:也可以整个项目用vue全家桶开发. ​ vue是一个轻量级的MVVM ...

  5. 大学四年因为分享了这些软件测试常用软件,我成了别人眼中的(lei)大神(feng)!

    依稀记得,毕业那天,我们辅导员发给我毕业证的时候对我说"你可是咱们系的风云人物啊",哎呀,别提当时多开心啦????,嗯,我们辅导员是所有辅导员中最漂亮的一个,真的???? 不过,辅 ...

  6. 一款好用的数据血缘关系在线工具--SQLFlow

      l  数据血缘关系(data lineage) 数据血缘属于数据治理中的一个概念,是在数据溯源的过程中找到相关数据之间的联系,它是一个逻辑概念.数据治理中经常提到血缘分析,血缘分析是保证数据融合的 ...

  7. MySQL锁等待与死锁问题分析

    前言: 在 MySQL 运维过程中,锁等待和死锁问题是令各位 DBA 及开发同学非常头痛的事.出现此类问题会造成业务回滚.卡顿等故障,特别是业务繁忙的系统,出现死锁问题后影响会更严重.本篇文章我们一起 ...

  8. 从系统的角度分析影响程序执行性能的因素——SA20225205 黄兴宇

    实验总结分析报告:从系统的角度分析影响程序执行性能的因素 1.请您根据本课程所学内容总结梳理出一个精简的Linux系统概念模型,最大程度统摄整顿本课程及相关的知识信息,模型应该是逻辑上可以运转的.自洽 ...

  9. [论文阅读笔记] Fast Network Embedding Enhancement via High Order Proximity Approximati

    [论文阅读笔记] Fast Network Embedding Enhancement via High Order Proximity Approximation 本文结构 解决问题 主要贡献 主要 ...

  10. Linux单用户模式(修改密码、运行级别)方法详解

    很多新手当面对"忘记 root 账户密码导致无法登陆系统"这个问题时,直接选择重新系统.其实大可不必,我只需要进入 emergency mode(单用户模式)更新 root 账户的 ...