day02-课堂笔记

1、打开DOS命令窗口,执行java HelloWorld,执行原理?
* java.exe命令会启动JVM
* JVM启动之后会启动类加载器ClassLoader
* ClassLoader会在硬盘上的某个位置搜索HelloWorld.class字节码文件
* 找到该文件则执行
* 找不到该文件则报错

疑问:ClassLoader是在哪个位置上搜索HelloWorld.class字节码文件的?
* 默认情况下,ClassLoader从当前路径下加载xxx.class字节码文件
* 当然,也可以让ClassLoader去某个指定的路径下加载字节码文件,这时需要配置环境变量classpath
* classpath环境变量属于java语言中的环境变量,不属于windows操作系统【PATH环境变量属于操作系统】
* classpath是给ClassLoader类加载器指路的。
* 设置这样的环境变量:classpath=D:\course\JavaProjects\02-JavaSE\day02
- 打开dos命令窗口在任意位置,都可以执行:java HelloWorld
* classpath环境变量没有配置的话,类加载器默认从当前路径下找字节码文件,
当classpath环境变量配置为某个指定的路径之后,类加载器只去指定的路径当中加载字节码文件。
* 综上所述,环境变量classpath不再配置,这样类加载器会自动从当前路径下加载class字节码文件。
所以,每一次执行.class程序的时候,需要在DOS命令窗口中先切换到.class字节码文件所在的路径下。
然后运行。
* 当然,classpath也可以这样配置:classpath=.

注意:
路径中“..”表示上级目录
路径中“.”表示当前目录

2、关于java源程序当中的注释:

* 什么是注释?注释的作用是什么?
- 出现在java的源程序当中,对java源代码的解释说明
- 注释不会被编译到.class字节码文件当中
- 一个好的开发习惯应该是多编写注释,这样程序的可读性比较强。

* java中的注释怎么写呢?
- 单行注释
//单行注释,只注释当前行

- 多行注释
/*
多行注释
多行注释
多行注释
多行注释
多行注释
.....
*/

- javadoc注释
/**
* javadoc注释
* javadoc注释
* javadoc注释
* javadoc注释
* javadoc注释
* javadoc注释
*/
注意:这种注释是比较专业的注释,该注释信息会被javadoc.exe工具解析提取并生成帮助文档。

3、对HelloWorld程序进行解释:
需要记忆:
* public
* class
* static
* void
* System.out.println(""); 向控制台输出消息
* 类体
* 方法体
* 类体中不能直接编写java语句【除声明变量之外】
* 一个java语句必须以“;”结束
* 方法体中可以编写多条java语句
* 主方法是程序的入口,固定写法,SUN规定的。

4、public class 和 class的区别:

* 一个java源文件当中可以定义多个class

* 一个java源文件当中public的class不是必须的

* 一个class会定义生成一个xxx.class字节码文件

* 一个java源文件当中定义公开的类的话,最多有一个,并且该类名称必须和java源文件名称一致。

*一个Java源文件可以定义多个class和一个公开的class

* 每一个class当中都可以编写main方法,都可以设定程序的入口,想执行B.class中的main方法:java B,
想执行X.class当中的main方法:java X

* 注意:当在命令窗口中执行java Hello,那么要求Hello.class当中必须有主方法。没有主方法会出现运行
阶段的错误:
D:\course\JavaProjects\02-JavaSE\day02>java Hello
错误: 在类 B 中找不到主方法, 请将主方法定义为:
public static void main(String[] args)

5、总结第一章需要掌握的内容:
* 理解java的加载与执行
* 能够自己搭建java的开发环境
* 能够独立编写HelloWorld程序,编译并运行
* 掌握环境变量path的原理以及如何配置
* 掌握环境变量classpath的原理以及如何配置
* java中的注释
* public class 和 class 的区别

第二章:java语言基础

1、标识符

1.定义
源程序中可以自定义的部分都是标识符
editplus中黑色部分
类名
方法名
接口名
变量名
常量名
...

2.命名规则【类似法律,严格执行否则编译错误】
只能由数字、字母、下划线、美元符组成
且不能以数字开头,不能包含空格
关键字不能作为标识符
无长度限制,不要太长

3.命名规范【类似道德,最好遵守】

*见名知意

public class UserService{
public void login(String username,String password){

}
}

*驼峰命名【大小写起伏】

SystemService
UserService
CustomerService

*类名、接口名:首字母大写,后面每个单词首字母都大写
*变量名、方法名:首字母小写,后面每个单词首字母大写
常量名:全部小写

*/
public class IdentifierTest01 //IdentifierTest01就是一个类名
{
//main是一个方法名
public static void main(String[] args){ //args是变量名

}
}

2、关键字

  常用的关键字,遇到时学习

  在 Java 中关键字都是小写的

class extends implements interface import package break case continue default do

if else for return switch while false true null boolean byte char short int long float double

try catch throw throws finally abstract fianl native private protected public static

synchronized transient volatile instanceof new super void assert enum goto const

3、字面值

就是数据,是java语言的组成部分

比如

1

1.1

"abc"

"A"

true

false

4、变量

变量包含,数据类型、变量名、字面值,一般分为局部变量和成员变量

局部变量在方法体之内,成员变量在方法体之外,类体之内

变量是内存中存储数据的最基本的单元

不同数据类型的变量分配的内存空间不同

变量中存储的数据要求与其数据类型一致,否则编译时报错

变量名要符合标识符的标准,首字母小写,后面每个单词首字母大写

Java中的变量必须先声明,再赋值然后才能访问

变量不赋值,内存空间不会为其开辟

在作用域中,同一变量名不能重复定义,但同一变量可以被重新赋值

ps:   作用域是指变量的作用域,即变量的作用范围,出了该范围(大括号{}),该变量就无法访问(变量如果被定义在类和方法体之间,则不同方法体均可访问该变量,以为没出大括号,大括号包含了各个方法体)

  方法体内的语句是顺序执行的,且前一个不执行完后一个不被执行

5、数据类型

一共五种数据类型

整型(1,2,100)、浮点型(1.5,10.1)、字符串型("abc")、字符型("A")、布尔型(true,false)

布尔型就是真和假

不同数据类型占得内存大小不同

Java中有两种数据类型,基本数据类型和引用数据类型

其中基本数据类型包含四大类八小种

第一类: 整数型 byte、short、int、long

第二类:浮点型 float、double

第三类:布尔型 Boolean

第四类:字符型 char

"abc"字符串属于引用数据类型,字符属于基本数据类型

基本数据类型      占用空间(字节)

byte            1

short             2

int               4

long            8

float            4

double             8

boolean           1

char            2

其中char需要字符编码,比如ASCII码

1byte=8bit

byte型的最大值为01111111,其中最高位为符号位,0代表正数,1代表负数

它的取值范围[-128,127]

------整理自B站动力节点教育集团

最新文章

  1. 解决 android 高低版本 webView 里内容 自适应屏幕的终极方法
  2. (一)sql入门 导读
  3. 【要什么自行车】ASP.NET MVC4笔记01:Asp.net MVC 分页,采用 MvcPager 和CYQ.Data来分页
  4. 【CodeVS 1004】四子连棋
  5. axure 母版 模板
  6. maven时候Embedded error: error in opening zip file
  7. wget下载FTP的文件
  8. MSSQL查询所有数据库表,指定数据库的字段、索引
  9. 未能的导入项目,请确认<Import>声明中的路径正确
  10. 某网站经纬度Decode
  11. C常量与控制语句
  12. python--第五天总结
  13. Redis 非关系性数据库集群的搭建与常用方法
  14. Technical Information ARM-related JTAG / SWD / SWV / ETM Target Interfaces
  15. select 操作选中添加、删除操作Javascript
  16. 【转】【Python】Python多进程与多线程
  17. 《转载》Tomcat内存设置详解
  18. distinct group by
  19. Mybatis中insert
  20. jquery获取select选中项的文本

热门文章

  1. 移动web开发之布局
  2. 【Flutter 实战】17篇动画系列文章带你走进自定义动画
  3. e3mall商城的归纳总结3之后台商品节点、认识nginx
  4. source insight4提示结尾不一致。关闭
  5. 2020年B2B外贸建站的终极教程
  6. My Github Repository
  7. Codeforces 1389 题解(A-E)
  8. 知识点干货——CSS动画
  9. C++——百分率
  10. 为什么 char 数组比 String 更适合存储密码?