2021.1.20学习java的第一天
2. 初识java :
- mkdir–创建目录;
- cls–清屏;
- dir:看某个目录的下一个子目录;
- cd:切换目录 cd …回到上一级目录 cd .就在当前目录下
- rd:删除一个目录 --模式 rd+目录名;
- del:删除一个文件 – 模式 del+文件名;
快捷键:
tab 自动补全;
win+R 打开命令行;
用上下箭头翻阅历史指令记录
命令行窗口中的内容复制的问题:右键—>标记(k)–>左键
选中要复制的区域—>enter(回车)即拿到了要复制的内容,然
后可以将其粘贴到其他地方
javac命令 用来编译java源代码
e:\java基础>javac Hello.java
java命令 用来执行编译好的java程序
e:\java基础>java Hello
hello world!
jdk 与 jre
- jdk java开发工具包;
- 我们一定要用到Java工具包使用者不需要这个东西
- 对于使用者来说在运行程序时对于使用者来说jre是需要的;
C语言与Java的区别:
C语言的编译与运行与环境有要求,而Java编译一次可以在任意环境下进行,因为Java语言一处编译处处运行;
但是,java和C比较起来,也有一些不足之处,比如,
C/C++这些需要对复杂的内存进行操作和管理,内存的操作和管理
由程序员自行进行。稍有不慎就会发生内存泄露等。但是如果管理
得好呢,那么程序的效率就很高。这就是人们常说C/C++效率比
java好的地方。对于好的程序员来说,健壮性java确实不如
C/C++
什么是JVM?
1 jvm叫做java虚拟机,一看就不是一个固定的软件。那它是
什么呢?jvm是一套标准。是由SUN公司制定的标准。人们可以依
照这一套标准进行jvm具体的版本的开发。比如HotSpot,它是遵
照jvm的标准,使用jdk开发工具进行开发出来的一个软件,用来
运行编译好的java程序。
OpenJDK是开发者工具
2 java是开源的,所以jdk有源码,openjdk也有源码,你想
了解jvm的具体实现,比如你要知道HotSpot是怎么写出来的,有
哪些程序组成,你可以看OpenJDK源码。
JDK、JRE、JVM之间的关系
2 java基础
1 在editplus中,蓝色字体是关键字,黑色的是标识符,粉色的是字
面量
2 字面量:数据
3 标识符:变量名,函数名,类名,函数的参数名等这些由程序
员自己定义的名字都叫做标识符。只能包含数字字母下划线$,不能
以数字开头
4 关键字:是java保留的一些有特殊用途的,关键字是不能用来
做标识符的
5 E:\java基础>del *.class 这个是用来删除当前文件夹下
所有的以.class结尾的文件
1. java程序是怎么执行的?
1 我们知道,java源程序是以xxx.java命名的,源程序是程序
员编写的,人能看懂的,请问我们写代码是要给谁看?计算机,计
算机能看得懂我们上面写的代码吗?看不懂,计算机能看懂什么东
西?计算机实际只能看懂0和1。为什么?因为计算机压根儿什么都
看不懂,他只能接受高低电频,高为1,低为0,是不是这样?所以
计算机只能读懂二进制。我们用符号写就的东西,它搞不懂。那么
符号写就的是为了人能读懂,程序员能更方便简洁的去写代码。
2 写完代码之后,我们要将这些字符转换成二进制,机器能处理
的二进制。
3 xxx.java通过编译器编译之后,生成xxxx.class文件,该
文件中保存的就是二进制。
4 我们将这个xxx.class文件送入虚拟机JVM,jvm负责解释执
行。
5 以后我们写完工程以后,都会打包,打成jar包或者war包,
这些包都是包含了大量的.class文件。我们把这些class文件给
到用户之后,用户是没有办法更改我们的源程序的
2. 关于xxx.java文件中的class
1 一个class对应一个类,在编译以后,一个class会生成一个
xxx.class文件
2 一个xxx.java文件中,可以有多个class类,有几个类,就
会在编译之后生成几个对应的.class文件
3 一个xxx.java文件中,不可以存在重名的两个类,如果存
在,编译报错(类重复)
4 一个xxx.java文件中,可以没有public关键字.
5 对于编译来说,编译只是对语法进行检查,只与是否有方法、
属性这些东西,对于编译来说并不重要,只要语法对了,编译就通
过。
java中的两种方法
1 叫做数据(变量的定义和定义时直接赋值)
2 叫做方法
java语句只能写在方法中,不能直接写在类体中方法外。否则编译报错。
一个java程序只能有一个main方法,一个java工程也只能
有一个main方法,该方法的写法只能是public static void main(String[] args)
1,public是可以被删掉的,编译没有问题
2,static也是可以被删掉的,编译没有问题
3,void删掉之后报错,
E:\java基础>javac Hello.java
Hello.java:11: 错误:
方法声明无效; 需要返回类型
main(String[] args) { ^1 个错误
4,用其他的类型作为返回值类型,编译也没问题
5,但是,所有的东西只要运行都会报上述的错误,这是SUN
公司规定的,一定要写成 public static void main(String[] args)
6, 唯有能变得是String[] args中的args,这个是标识
符,只要满足标识符的准则,就可以。但是,一般情况下我们不建
议改变