文章目录
前言
JAVA相关的基础知识。
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=HelloWorld.class的绝对路径目录。
-打开DOS命令窗口在任意位置 ,都可以执行java HelloWorld
*classpath环境变量没有配置的话,类加载器默认会从当前路径下找字节码文件,
当classpath环境变量配置为某个指定的路径之后,类加载器只去指定的路径当中加载字节码文件。
*综上所述,环境变量classpath不在配置,这样类加载器会自动从当前路径下加载class字节码文件。
所以,每一次执行.class程序的时候,需要在DOS命令窗口中先切换到.class字节码文件所在的路径下。
然后运行。
*classpath=.
注意:路径中".."表示上级目录
路径中"."表示当前目录
2、关于java源代码中的注释;
*什么是注释,注释的作用是什么?
-出现在java的源程序当中,对java源代码的解释说明
-注释不会被编译到.class字节码文件当中
-一个好的开发习惯应该是多编写注释,这样程序的可读性比较强。
*java中的注释怎么写呢?
-单行注释
// 单行注释,只注释当前行
-多行注释
/*
多行注释
多行注释
…
*/
-javadoc注释
/**
*javadoc注释
*javadoc注释
*javadoc注释
*javadoc注释
*javadoc注释
*/
它会被javadoc.exe工具解析、提取到生成的帮助文档里面(比较专业)有利于开发。
3、对HelloWorld程序进行解释
需要记忆
*public
*class
*static
*void
*System.out.println("");向控制台输出消息
*类体
*方法体
*类体中不能直接编写java语句
*主方法是程序的入口,固定写法,SUN公司规定的。
4、publc class和class的区别:
*一个Java源文件当中可以有多个class
*一个Java源文件当中不一定有public的class/public的class不是必须的
*一个class会对应生成一个xxx.class字节码文件
*一个java源文件当中定义公开的类的话,pubilc的class只能有一个,并且该类的名称必须和Java源文件的名称一致
*每一个class当中都可以编写main方法,都可以设定程序的入口,想执行B.class中的main方法:
-Java B
想执行X.class当中的main方法:java X
*注意:当在命令窗口中执行java XXX,要求XXX.class当中必须有主方法。没有主方法会出现运行错误
错误: 在类 B 中找不到 main 方法, 请将 main 方法定义为:
public static void main(String[] args)
否则 JavaFX 应用程序类必须扩展javafx.application.Application
5、总结第一部分需要掌握的内容
*能够自己搭建Java的开发环境
*能够独立编写HelloWorld程序,编译并运行
*掌握环境变量path的原理以及如何配置
*掌握环境classpath的原理以及如何配置
*java的注释
*public class 和class的区别
第二章:Java语言基础
关于Java语言当中的标识符
1、什么是标识符?
-在java源程序中,凡是程序员有权力自己命名的单词都是标识符。
-标识符在Editplus编辑器中以黑色字体高亮显示
-标识符可以标识什么元素呢?
*类名
*方法名
*变量名
*接口名
*常量名
…
2、标识符的命名规则?【不按照这个规则来,编译会报错,这是语法】
*一个合法的标识符只能由“数字、字母下划线、美元符号”组成,不能含有其他符号
*不能数字开头
*严格区分大小写
*关键字不能做标识符
*理论上无长度限制
3、标识符的命名规范【只是一种规范,不属于语法,不遵守规范编译器不会报错】
*最好见名知意
public class UserService
{
public void login(String username,String userpassword)
{
}
}
*遵守驼峰命名规范:
SystemServi0ce
UserService
CustomerService
*类名、接口名:首字母大写,后面每个单词首字母大写。
*变量名、方法名:首字母小写,后面每个单词首字母大写。
*常量名:全部大写。
/*
关于Java语言当中的标识符
1、什么是标识符?
-在java源程序中,凡是程序员有权力自己命名的单词都是标识符。
-标识符在Editplus编辑器中以黑色字体高亮显示
-标识符可以标识什么元素呢?
*类名
*方法名
*变量名
*接口名
*常量名
...
2、标识符的命名规则?【不按照这个规则来,编译会报错,这是语法】
*一个合法的标识符只能由“数字、字母下划线、美元符号”组成,不能含有其他符号
*不能数字开头
*严格区分大小写
*关键字不能做标识符
*理论上无长度限制
3、标识符的命名规范【只是一种规范,不属于语法,不遵守规范编译器不会报错】
*最好见名知意
public class UserService
{
public void login(String username,String userpassword)
{
}
}
*遵守驼峰命名规范
SystemServi0ce
UserService
CustomerService
*类名、接口名:首字母大写,后面每个单词首字母大写。
*变量名、方法名:首字母小写,后面每个单词首字母大写。
*常量名:全部大写。
4、合法和不合法的标识符
合法 不合法
--------------------
_123Test 123Test
class1 class
publiic1 public
$abc $ abc
abc abc#
*/
/*
关于Java语言当中的关键字
*什么是关键字
-sun在开发java语言的时候,提前制定好的一些具有特定含义的字符序列。
-在语言当中具有特殊含义的单词,这些单词构成java程序的骨架,
这些单词是需要记住的,不能随意编写,包括大小写。
*关键字在Java语言中全部小写
*关键字在EditPlus工具中的颜色是蓝色高亮
*常见的关键字有那些?
public
class
static
void
if
for
while
do
default
byte
short
int
long
switch
case
package
....
*/
public class IdentifierTest01 //IdentifierTest01是一个类名,名字可以修改
{
//main是一个主方法名
public static void main(String[] args)//args是一个变量名
{
}
public static void doSome(){
//i是变量名
int i=10;
}
}
2、关键字
3、字面值
关于字面值
*字面值:
-10
-20
-“abc”
-‘a’
-true
-false
*字面值就是数据
*字面值是Java源程序的组成部分之一。
*包括标识符、关键字、字面值都是Java源程序的组成部分。
*数据在现实世界当中是分门别类地,所以数据在计算机编程语言当中也是有类型的:【数据类型】
-10、100属于整数型字面值
-3.14属于浮点型字面值
-true、false属于布尔型字面值
-"abc"属于字符串型字面值
-'a'、'b'属于字符型字面值
/*
关于字面值
*字面值:
-10
-20
-"abc"
-'a'
-true
-false
*字面值就是数据
*字面值是Java源程序的组成部分之一。
*包括标识符、关键字、字面值都是Java源程序的组成部分。
*数据在现实世界当中是分门别类地,所以数据在计算机编程语言当中也是有类型的:【数据类型】
-10、100属于整数型字面值
-3.14属于浮点型字面值
-true、false属于布尔型字面值
-"abc"属于字符串型字面值
-'a'、'b'属于字符型字面值
*/
public class ConstTest01
{
public static void main(String[] args){
System.out.println("abc");
System.out.println('a');
System.out.println(true);
System.out.println(10);
System.out.println(3.14);
/*
System.out.println('ABC');
向控制台输出的时候编译会报错,因为单引号中只能存放单个字符,属于字符型字面值
*/
}
}
4、变量
关于Java语言当中的变量:
1、什么是变量?
*变量本质上来说,是内存上的一块空间,这块控件“有数据类型”、“有名字”、“有字面值”。
*变量包含三部分:数据类型、名称、字面值【数据】
*变量是内存中存储数据最基本的单元
2、数据类型的作用?
*不同的数据有不同的类型,不同的数据类型底层会分配不同大小的空间。
*数据类型是指导程序在运行阶段应该分配多大的内存空间。
3、变量要求:变量中存储的具体的“数据”必须和变量的“数据类型”一致,当不一致的时候编译会报错。
4、声明/定义变量的语法格式:
数据类型 变量名;
变量名:只要是合法的标识符就行。规范中要求:首字母小写,后面每个单词的首字母大写。
例如:
int i;
int age;
int long;
....
5、变量声明之后怎么赋值?
语法格式:
变量名=字面值;
要求:字面值的数据类型必须和变量名的数据类型一致。
= 是一个赋值运算符,赋值运算符先运算等号右边的表达式,表达式结束以后的结果赋值给左边的变量。
6、声明和赋值可以放到一起来完成。
int i=10;
7、变量赋值之后可以重新赋值,变量的值可以变化。
int i=10;
i=20;
System.out.println(i);
最后的结果为20;
8、有了变量的概念之后,内存的空间得到了重复的利用。
9、通常访问一个变量包括两种访问形式:
*第一种:读取变量中保存的具体数据 get
*第二种:修改变量中保存的具体数据 set
i=20; //set
System.out.println(i); //get
10、变量在一行上可以声明多个
int a,b,c;
11、变量必须先声明再赋值才能访问。
int i;程序执行到这里内存空间并没有开辟出来,必须先给i变量赋值才可以初始化,开辟内存。
12、在方法体当中的Java代码,是遵循自上而下的顺序依次执行,逐行执行。
第一行
第二行
第三行
第四行
下面的程序想要运行必须要保证上面的程序代码是完整的,可通过编译的。
13、在同一个作用域当中,变量名不能重名,但是变量可以重新赋值。
//public表示公开的
//class表示定义一个类
//HelloWorld表示一个类名
public class HelloWorld
{
//类体
//类体中不允许直接编写Java代码,除了变量之外
/*
public表示公开的
static表示静态的
void表示空
main表示方法名是main
(String[] args)表示一个main方法的形式参数列表
需要记住的是:以下的方法是一个程序的主方法,是程序的执行入口
是SUN公司规定的,固定的编写方式
*/
public static void main(String[] args)
{
//表示定义一个公开的静态的主方法
//方法体
//Java语句,Java语句以';'结尾
//以下语句是向控制台输出一段信息
//Java中所有的字符串都以双引号括起来。
System.out.println("HelloWorld!");
//再向控制台输出消息输出中文
System.out.println("你好!我是一个程序员");
}
}