什么是java?
1.java是一个开发平台。
se版本(corejava):java小游戏
ee版本:管理系统 web项目 框架
2.java是一门(面向对象,后台,强类型,简单 高级)编程语言。
3.开发工具 : jdk
jdk中包含jre环境
4.api文档 调用api
api: 提供开发好的java代码。供使用java语言的开发人员直接使用。
api文档: 描述java核心代码如何使用的问题。
5.基础类 使用类 业务代码 jdbc
6.jdk : jvm 核心代码 开发工具
7.java项目(程序)—>多个java文件组成---->多个类---->方法—>功能。
8.java的jvm内存中垃圾自动回收机制。
垃圾 : 没有用的对象。
回收: 清除对象占用的内存。
自动 : 一系列的判断机制。
jvm内存中。
面向对象
9.jvm 什么作用:
.java源文件 --编译 --jvm-运行—》功能
1.类加载
2.字节码验证
3.运行: 解释运行 JIT及时编译运行
执行效率: 编译运行> 解释运行
热点代码 : 使用频率高的代码
mix mode 混合模式
hot spot : jvm的版本。
java —>sun ---->oracle
开发java程序:由一个Test组成。
功能: 向屏幕输入hello world 字符串。
开发环境: linux jdk
开发工具: vi编辑器
源代码:
public : 修饰符 公共
class : 关键字 定义一个类 Test类 (模板)
Test : 类名 首字母大写
{ : 代码块 类的范围
代码具有缩进功能。
public
static :静态 修饰方法
void : 无返回值
该方法是公共的静态的无返回值的方法
main : 方法名main : 程序的入口。主方法
(String[] args) 参数 :args 类型 :数组类型[]
程序入口的main方法: 格式和语法固定。
所有的测试代码定义在main方法的范围内。
{:方法范围开始
System : API中提供核心类:System
. : 调用
out
.
println 打印方法
("hello world!");//输入字符串的功能。
"" 字符串
(): 方法参数的位置
}: 结束
}
编译: javac Test.java
运行: java Test
java环境的配置:
JAVA_HOME : jdk安装位置
CLASSPATH : . 字节码文件·所在位置
PATH: 配置系统执行java可执行文件的查找路径。
JAVA_HOME/bin/…
javac命令---->path---->bin/javac.exe
规则: 编写源代码
一个java文件中可以包含多个java类
public 修饰的类名必须与文件名相同。
运行当前类时。类中必须有一个方法: main() 程序的入口
每一个类编译后生成对应的一个字节码文件.class
运行报错: java 命令发生的错误 :
找不到该类中main方法:
错误: 在类 Test2 中找不到 main 方法, 请将 main 方法定义为:
public static void main(String[] args)
否则 JavaFX 应用程序类必须扩展javafx.application.Application
编译错误:javac 命令时发生的错误。
Test2.java:6: 错误: 类Test3是公共的, 应在名为 Test3.java 的文件中声明
public class Test3{}
^
1 个错误
原因: 一个java文件存在多个public 修饰的类。
当源代码发生改变,必须重新编译字节码文件。javac
main : 程序入口 启动首先调用的就是主方法。
package : 组织类的功能。解决一个项目多个文件名重复问题。
什么形式: 定义在.java文件中第一行
文件: 目录/文件夹
java.lang 包
java.io包
包名如何命名 ?使用公司域名反写
www.xxx.com
com.xxx.day01
day02
test
bean
util
com/xxx/day1/Test.java
java 全限定名=包名+类名
命令 : 添加package 定义后:
javac -d . Test.java
字节码文件存放在对应的com/briup/day01目录中
java com.briup.day01.Test
-cp : classpath 运行时查找字节码文件的路径
java -cp bin com.briup.day01.Test
字节码文件必须存放对应的包目录下:(-d : 指定生成字节码文件的路径)
-cp 搜索字节码文件所在的位置。
打印出当前系统运行时间:
时间: java.util.Date类
创建对象方式使用时间类 new Date()
src/TestDate.java:4: 错误: 找不到符号
System.out.println(new Date());
^
符号: 类 Date
位置: 类 TestDate
1 个错误
没有导入对应的类 System String Date
java.lang包下的类默认导入 。需要import
2个类之间关系
当2个类都是自己定义的。如果使用new Test()
结论: 当2个类在同一个包 直接使用。
当2个类不在同一个包。需要使用import导入
先编译 Test4 然后在编译 TestDate;