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站动力节点教育集团

Java学习day02的更多相关文章

  1. Java 学习 day02

    1. 标识符 2. 常量 3. 进制的特点 4. 进制转换(十进制和二进制) 5. 进制转换(八进制和十六进制) 6. 进制转换(负数二进制) 7. 变量 8. 类型转换 9. 算术运算符 10. 转 ...

  2. 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁

    什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...

  3. 0035 Java学习笔记-注解

    什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...

  4. 分享篇——我的Java学习路线

    虽然之前我是开发出身,但是我学习的语言是Objective-c,这个语言使用起来范围比较窄,对于自动化学习来说也是无用武之地,所以我自己学习了Java,对于一个有开发经验的人来说学习一门新语言相对来说 ...

  5. Java学习笔记(04)

    Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...

  6. Java学习心得之 HttpClient的GET和POST请求

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Java学习心得之 HttpClient的GET和POST请求 1. 前言2. GET请求3 ...

  7. 0032 Java学习笔记-类加载机制-初步

    JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...

  8. 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用

    垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...

  9. 0028 Java学习笔记-面向对象-Lambda表达式

    匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...

随机推荐

  1. vue-cli3.0 vue脚手架3.0的使用

    1.安装vue-cli 3.0 npm install -g @vue/cli # or yarn globaladd @vue/cli 安装成功后查看版本:vue -V(大写的V)     2.命令 ...

  2. Docker 网络模式详解及容器间网络通信

    当项目大规模使用 Docker 时,容器通信的问题也就产生了.要解决容器通信问题,必须先了解很多关于网络的知识.Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜 ...

  3. android开发之gridView的一些属性。(项目经验总结)

    1.android:numColumns="auto_fit"   //GridView的列数设置为自动 2.android:columnWidth="90dp &quo ...

  4. C#还原对图像做的修改

    在C#程序中对图像进行处理,有的时候需要将处理后的图像还原,便于观察两者之间的区别,避免重新运行程序造成的麻烦.我是将之前写的Tab页中打开的图像进行还原,将原始图像数据保存在数据流中,然后从数据流中 ...

  5. Unity游戏Mono内存管理及泄漏

    UWA工具 https://yq.aliyun.com/articles/435553 Unity游戏Mono内存管理及泄漏 https://wetest.qq.com/lab/view/135.ht ...

  6. Brackets(括号最大匹配问题(区间dp))

    We give the following inductive definition of a “regular brackets” sequence: the empty sequence is a ...

  7. C++11的decltype关键字

    C++11的decltype关键字 概述 decltype关键字和auto有异曲同工之处 有时我们希望从表达式的类型推断出要定义的变量类型,但是不想用该表达式的值初始化变量(如果要初始化就用auto了 ...

  8. 测试JsonAnalyzer解析Json的十一个测试用例

    目测以下测试用例都是通过的. 01. 原文={"status":"","message":"success"," ...

  9. 使用dbUnit的 IDataSet 因乱序造成assert失败而采取的措施

    本例源码下载:https://files.cnblogs.com/files/xiandedanteng/dbUnitTest20200211.zip 在做IDataSet比较时,特殊情况下会有期盼的 ...

  10. Oracle的dbms_random.value(min,max)函数包括边界值吗?数据是如何分布的?

    事先申明下,我的DB环境是Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production,不保证在其它版本下也 ...