一.jdk jre
1.认识jdk jre
sdk:software development kits 软件开发工具包
jdk=java+sdk,java软件开发工具包
jre=java runtime envrionment ,java运行环境
jdk版本 LTS STS 一般使用LTS长期支持的版本
jdk8 11 17
2.面试小问题 jdk jre 区别
安装jdk的系统 可以开发java程序并且运行java程序
安装jre的系统,只能运行java程序,一般是部署环境
3.面试问题 为什么要配置jdk环境路径PATH在bin目录
Ctrl+1 javac.exe 操作系统要找
Ctrl+2 java.exe
给java找的exe文件都在jdk的bin目录中
答:一般安装jdk只安装一次 默认路径在c盘 无论代码写在哪里都需要OS找到javac 和java命令 所以PATH就需要配置jdk的bin目录,bin目录中有javac和java命令
二.环境变量
1.环境变量有PATH CLASSPATH JAVA_HOME
环境变量 | 给谁使用 | 作用 |
PATH | 操作系统OS | 打开一些小程序、exe |
CLASSPATH | 类加载器 | .class类文件 |
JAVA_HOME | 其他应用 tomcat | 指明java安装路径 |
快速打开一个计算机 Win +R ,输入 calc
快速打开一个记事本 Win+R,输入 notepad
快速打开一个画图 Win+R,输入 mspaint
2.CLASSPATH
2.1 面试题:CLASS需要单独配置吗
不需要 CLASSPATH默认指向当前文件夹
3.如何配置环境变量
3.1永久配置性 通过属性->环境变量->系统变量 设置以后 确定完毕
3.2 通过cmd可以配置(临时性 一次性)
native2ascii 好玩的,可以将中文转化为unicode编码
三.早期java程序
1.早期使用的java程序使用记事本写的,win+R打开运行输入cmd
一般呢进入就是c盘,切换盘符则需要 输入 d: 回车即可
进入其他盘符路径之前必须切换盘符,cd 路径
早期编译 javac HelloWorld.java 编译文件
早期运行 java HelloWorld 运行文件
. 表示当前文件 ..则表示上一级目录
四.简单HelloWorld代码补充
public class HelloWorld{
}
1.四种修饰访问限定符
public公共的 protected受保护的 default默认的 private私有的 形容词 所以修饰
2.class 类 群体 是java中的关键字
3.HelloWorld 是类名
帕斯卡命名法(首字母大写,后面字母首字母也要大写)
3.1一个文件最多出现1次公共的类
3.2一个文件最少出现0次公共的类
3.3公共类的名字要和文件名一致
4.标识符规范
1.不能使用java中的关键字/保留字【goto、const】
2.java中的标识符可以使用中文/英文/数字/$/_
3.不能使用数字开头
经典面试题:
下面哪些是合法的标识符 (BDFG)
A goto java中保留字
B Goto java中严格区分大小写
C 8HelloWorld 不嫩数字开头
D String 官方定义的类
E class java中的关键字
F System 官方定义的类
G Hello_World
程序员总结合法标识符 [java中的名字]
//1.类名【帕斯卡命名法】 HelloWorld
//2.属性名【驼峰】 helloWorld
//3.方法名【驼峰】 helloWorld
//4.包名[全部小写]
//5.常量名【全部大写】 final数据类型 PIE=3.14 常量要大写
5.public static void main(String[] args){}
//public 公共的 访问权限修饰符 形容词
//static 静态的 修饰符 形容词
//static public 可以这样写
//void返回类型 表示没有返回类型
//out 标准输出流对象【输入流对象 System.in】
//标准输出 屏幕
//标准输入 键盘 鼠标 【线性轴最好】
6.类是类 关键字是关键字 标识符不要搞混了
五.封装main的兄弟方法
在同一个类中
public class HelloWorld{
public static void main(String[] args){
check(5);//实际参数 实参
System.out.println();
}
//封装方法 main方法的兄弟方法
//如果一个方法是main方法的兄弟方法 要有static
public static void check(int number){ //形式参数
//如果偶数 打印偶数
//如果奇数 打印奇数
if(number%2==0){
System.out.println("偶数");
}else{
System.out.println("奇数");
}
}
}
六.导包
import java.math.* 导包
默认情况下的包为 java.lang
1.包结构
文件夹
2.包的作用
(1).区分不同的功能
(2).解决重名问题
3.如何打包
1.手动创建 文件夹 将包->拖动文件
2.java代码创建
- Java代码 了解
Package com.etoak;//打包
- 首行 package com.et;
- 命令
- 编译: javac -d . HelloEt.java [javac HelloEt.java]
- 运行: java com.etoak.HelloEt [java HelloEt]
七.常见的异常
//进行语法分析时已到达文件结尾 -----> } 少
// 需要 class、interface、enum 或 record -----> }多
//少分号 ;
//非法字符 中文输入
//找不到符号 -》拼写错误
//找不到符号 -》没有导包 解决 导包 import java.math.* BigDecimal bb=new BigDecimal(1);
八.两个小练习
1.
public class ExecTonight1{
public static void main(String[] args){
int num1=check01(15);
System.out.println(num1);
check02(19);
}
// 封装一个check01的方法
// 如果是奇数 返回1
// 如果是偶数 返回0
public static int check01(int number)
{
if(number%2==0){
return 0;
}else{
return 1;
}
}
// 封装一个check02的方法
// 如果是奇数 打印1
// 如果是偶数 打印0
public static void check02(int number){
if(number%2==0){
System.out.println("0");
}else{
System.out.println("1");
}
}
}
2.
public class ExecTonight2{
public static void main(String[] args){
// 张三 20
Student s1=new Student();
s1.name="张三";
s1.age=20;
// show() 展示张三今年20岁
s1.show();
// study(8) 展示张三学习了8小时
s1.study(8);
}
}
/**
定义一个学生类型
每个学生有名字有年龄
每个学生会show() study()
show():打印XXX今年XXX岁
study(xxx):打印XXX学习了XXX小时
*/
class Student{
//属性 年龄
int age;
//属性 名字
String name;
//show方法 打印xxx岁
public void show(){
System.out.println(name+",今年"+age+"岁");
}
//study(xxx) 打印xxx学了多久
public void study(int hour){
System.out.println(name+"学习了"+hour+"小时");
}
}