Java基础
文章目录
- Java基础
- 1.安装环境
- 2.Java的由来
- 3.Java的特点
- 4.Java能做什么
- 5.Java不同的版本
- 6.Java常见关键词
- 7.Java程序的运行步骤
- 8.Java程序
- 9.Java基本语法
- 10.Java命名规范
- 11.Java定义变量
- 12.运算符号
- 13.Scanner对象
- 14.选择结构
- 15.循环结构※
- 16.debug模式
- 17.多重循环
1.安装环境
-
java环境变量配置
-
配置JAVA_HOME: JDK安装位置
-
配置ClassPath: 项目的根目录
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
-
追加Path:
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin -
检测 通过cmd输入 java -version或者javac -version
-
2.Java的由来
sun公司1991研发的一套语言,早期叫做橡树(Oak) ,Jame Gosling 詹姆斯·高斯林 Java之父带领工程师在印度尼西亚 爪哇岛喝咖啡,1995年正式更名为Java,图标为热咖啡,2009年 sun公司被Oracle收购
3.Java的特点
Java是一门面向对象为核心,支持高并发,多线程的跨平台,强类型高级编程语言
- 面向对象
- 通过类和对象的方式进行编程,更加符合人的思维,适合大型项目
- 多线程
- 可以同时处理很多任务
- 跨平台
- 跨越操作系统,win8 win10 win11 ios mac android都可以运行
- 强类型
- 对类型要求严格,先声明类型才可以赋值,值和类型需一致
4.Java能做什么
- 网站
- 大型商业网站
- 京东
- 淘宝
- 小米
- 大型商业网站
- 系统
- 办公系统
- 移动端
- 安卓,javame
- 游戏
- Minecraft
- 农
5.Java不同的版本
- JavaSE:标准版 Java基础核心
- 变量,数组,循环,集合,对象,IO
- JavaEE:企业版 包含企业开发的完整方案
- jsp servlet jdbc 框架
- JavaME:简化版
- 立足家电方向,移动端
6.Java常见关键词
- jdk:Java开发工具包 包含jre
- jre:Java运行环境包 包含jvm
- jvm:Java虚拟机 编译,运行程序,跨平台核心
- javaApi:Java核心类库 精通Java学习的工具
7.Java程序的运行步骤
-
编写源程序 xx.java
-
编译源程序 xx.class
生成字节码文件 计算机只能识别字节码文件
javac xx.java => xx.class
javac 可以生成多个class -
运行程序
java xx.class
注:main(参数)==>String[] 表示运行时的参数
java Test name zhangsan password 123
运行时String[] args包含以上四个值
8.Java程序
package day1;
// 公开的 类 类名:公开类的类名必须和文件名一致,否则报错
// 公开类只能有一个
public class Test {
// 程序的入口
// 公开的 静态的 无返回值类型的 入口固定方法名称(参数){
// 程序代码
// }
public static void main (String[] args) {
// 在控制台打印一句话
System.out.print("Hello world!");
System.out.print("Hello 输出第二句话!");
}
}
// 普通类,可以有多个
class A {
}
class B {
}
9.Java基本语法
// java所有语法都是以类为单位
// 公开的 类 类名
public class 类名{ // 类的开始
// 入口 程序运行入口
公开的 静态的 无返回值
publica static void main(String[] args){ // 方法的开始
java代码 ; // 每行分号结束
} // 方法的结束
} // 类的结束
10.Java命名规范
// Java定义任何东西不使用中文
- 类名
- 首字母大写
- 数字不能开头
- 如果是公开类,需和文件名一致
- 每个java文件有且只有一个公开类
- 变量名
- 由字母,数字,下划线,$构成
- 首字母小写
- 后面单词首字母大写,驼峰结构
- 数字不能开头
- 方法名
- 要求类似变量名
- 不能使用Java关键字命名
- 48个关键字:
- abstract、assert、boolean、break、byte、case、catch、char、class、continue、default、do、double、else、enum、extends、final、finally、float、for、if、implements、import、int、interface、instanceof、long、native、new、package、private、protected、public、return、short、static、strictfp、super、switch、synchronized、this、throw、throws、transient、try、void、volatile、while
- 2个保留字(现在没用以后可能用到作为关键字):
- goto、const
- 3个特殊直接量:
- true、false、null
- 48个关键字:
11.Java定义变量
-
变量
用于存储定义数据,类似于房间
房间类型 房间号码 入住 -
语法结构:
数据类型 变量名 = 值 -
Java的基本数据类型:
- 整数(整形)4种
- byte 1字节 8位 -27-27-1(-128-127)
- short 2字节 16位 -215-215-1(-32768-32767)
- int 4字节 32位 -231-231-1(-2147483648-2147483647)
- long 8字节 64位 -263-263-1(-9223372036854775808-9223372036854775807)
- 小数(浮点型)2种
- float 单精度 4字节
- double 双精度 8字节
- 特殊:2种
- boolean 布尔类型 两个值 true/false 真/假
- char 字符类型 只能存储单个字符 ‘A’ ,‘+’
- 整数(整形)4种
-
String 字符串类型 可以放字符串 “abcABC”
-
自动类型转换(类型提升)
- 小范围赋值给大范围变量时会进行自动类型提升
- byte->short->int->long
- char->int
- float->double
- 当运算过程中出现不同类型,运算结果的类型将自动转换为范围最大的类型
- 三元运算符中,返回值会自动类型提升为表达式中范围最大类型
- 小范围赋值给大范围变量时会进行自动类型提升
-
强制类型转换:大范围转换小范围数据 Java默认不允许
- 但是通过强制类型转换可以进行转换
- 语法:int i = (int) 15.5;
- 但是通过强制类型转换可以进行转换
char类型可以自动类型提升转换成int类型,会以ASCII码的形式存储十进制ASCII码
12.运算符号
- 赋值运算符:=
- 数学运算符:+,-,*,/,%,++,–
- 比较运算符:<,>,==,>=,<=
- 逻辑运算符:&&(与),||(或),!(非),&,^
&&和&的区别?
// && 具有短路功能 如果前面条件1不满足,条件2不会执行
// & 不具有短路功能 无论条件1是否满足,条件2也会执行
13.Scanner对象
Scanner对象用户获取控制台输入数据,底层是利用io流(系统输入流) System.in
使用步骤:
- 创建Scanner对象
- Scanner sc = new Scanner(System.in);
- 利用Scanner对象自带的方法 nextXX();、
- a.获取字符串数据 对象名.next();
- b.获取整型数据 对象名.nextInt();
- c.获取浮点型 对象名.next.Double();
- 如果用户输入非法数据,程序异常,Scanner提供了第三种方法判断数据合法性
对象名.hasNextXX();
返回布尔类型
eg:hasNextInt() hasNextDouble()
String str.charAt()返回字符串索引位置的字符
14.选择结构
选择结构:根据指定条件 执行指定的代码内容
-
第一种:if
-
语法1:
if(条件){ 如果条件成立执行 代码 } -
语法2:
if(条件){ 代码1 // 条件成立 执行 } else { 代码2 // 条件不成立 执行 } -
语法3:
if(条件1){ 代码1 // 条件1成立 执行 } else if (条件2){ 代码2 // 条件1不成立,条件2成立 执行 }... else if(条件n){ 代码n // 条件1 - n-1不成立,条件2成立 执行 } else { 代码 // 条件1 - n不成立 执行 }
-
-
第二种:switch
-
当需要多重分支而且条件判断是等值判断
-
switch(表达式){ case 1: 代码1; break; case 2: 代码2; break; ... default: 其他代码; }注:当表达式=1进入 case 1,=2进入 case 2,否则进入 default break 表示跳出 switch
-
-
第三种:三目运算符
-
表达式?表达式1:表达式2
表达式为真返回表达式1的值,为假返回表达式2的值
注:如果表达式1,2返回值类型不同,则返回值是范围更大的那个
eg:false?double:int
返回值为 double 类型
-
总结: if 一般适合区间判断 类似于 > < switch一般适合等值判断 case 1 case 2
- switch 支持哪些类型
- 支持 byte short int char 等可以隐式转换成整型的类型
- jdk 1.7 及以后 还支持 String 类型
- switch 还支持枚举类型
15.循环结构※
-
什么时候需要循环:
- 程序执行过程中 是否有很多相同内容需要执行很多次 而且有结束出口
- eg:打印二十份试卷 打印1份试卷 打印二十次
- 围绕操场跑10000米 每次一圈400米 达到10000米结束
- 重点:循环条件,循环操作
-
Java中的循环
-
while循环
-
执行规则:先判断再执行,直到判断条件为假
-
while(判断条件){ 循环体 }
-
-
do-while循环
-
执行规则:先执行,再判断,直到判断条件为假,退出循环
-
do{ 循环体 }while(判断条件)
-
-
break 表示跳出当前循环
-
continue 表示本次循环结束 进行下一次
实现跳出多重循环
-
System.exit(0) 正常退出
-
System.exit(1) 异常退出
表示跳出jvm虚拟机 bug:循环外有代码不执行
-
return 表示结束当前方法 bug:循环外有代码不执行
-
可以通过给循环标记
-
想退出 break 标记;
-
one: while(){ two: while(){ while(){ break one; // 表示退出到one位置 } } }
-
random.nextInt(MAX - MIN + 1) + MIN; MIN-MAX 的随机数
16.debug模式
可以用于调试程序,观察每一步执行过程,也是程序调错的有效方式
-
使用方式:
-
先设置断点(代码区域 行号附近点击)
- 表示程序从哪个位置进行调试
-
单机甲壳虫 开启debug模式 进入debug界面
3. 熟练使用快捷键一步一步操作- F8(单步跳过),一行一行执行 如果遇到方法不会进入
- F7(单步跳入),一步步执行 如果遇到方法 进入方法内部 继续执行内部方法
-
观察下面变量的改变情况
-
17.多重循环
循环里面可以再嵌套其他循环,类似提高了维度
eg:二重for
for(){ ---外层循环
for(){ ---内层循环
}
}


发布评论