引言:
从本周开始学习Java语言,每周记录一下本周所学,希望共同学习,共同进步,这也是对自我的一种知识记忆加强。
————————————————————————————————————————————
学习内容:
一. JDK安装以及常见的doc指令
二. Java的认识,以及java环境的搭建
三. Java书写内容:
1.java中的注释
2.java中的关键字
3.java中标识符规范
4.常量以及变量
5.java中的数据类型
6.显式转换与隐式转换
四. 进制以及Java中运算符
五. 键盘录入以及流程控制语句
————————————————————————————————————————————
具体内容:
一、JDK的安装以及基本的doc指令
1. 安装语言类型时,安装地址中不要含有中文路径,不能有空格符号,但可以有下划线。
2. doc指令:
doc是系统控制台,"win+R"打开。
cd 目录名------------进入文件夹
cd .. --------------回退上级目录
md 文件夹名称---------创建文件夹
copy con 文件名------创建文件
rd -----------------删除文件夹
del ----------------删除文件
cls ----------------清除屏幕
二、Java的认识,以及java环境的搭建
1.软件结构的划分
C/S结构 (Client-Server):客户端和服务器端的交互典型的特点: 客户端软件必须升级,才能使用服务器端的高版本的功能典型的应用:QQ客户端 (常见的客户端软件)。
B/S结构 (Browser-Server):浏览器端和服务器端的交互典型的特点:只要保证你的计算机上有浏览器即可(无论高版本还低版本都能够访问对应的网站),不需要升级。
2.Java的认识
- JDK:Java development Kit:Java开发工具包---------->包含了jre以及一些工具库
- JVM:Java Virtual Machine:Java 虚拟机--------------->:是一个假象计算机,运行在操作系统之上,每一个不同的系统都有自己的对应的版本jvm,所有的Java程序都需要被jvm执行
- JRE:Java Runtime Environment:Java运行环境---------->包含了JVM以及运行时所支持的核心类库; (类库:就包含很多java类)
3.环境变量的配置
希望在命令行使用javac.exe等工具时,任意目录下都可以找到这个工具所在的目录。
方式1 :
将jdk的bin目录的路径复制一下,在此电脑----右键—属性----->高级系设置------->环境变量----->系统变量------>path:将jdk的bin目录的路径复制复制到最前面;(千万不要删除path,导致系统指令崩掉)
弊端:
当jdk升级了,需要手动更改path系统环境变量的jdk的路径,可能不小心造成其他系统变量删除,不安全
方式2:
此电脑----右键—属性----->高级系设置------->环境变量----->系统变量—新建变量名 :JAVA_HOME
,变量值:jdk安装路径
在path里面—使用%JAVA_HOME%\bi
好处1:即使jdk升级,不需要手动更改path路径,直接改JAVA_HOME变量名的内容;
好处2:后期使用tomcat服务器,就可以正常启动
三、Java书写内容:
1. java中的注释
注释:对java代码进行解释说明的文字(提高代码阅读性)
单行注释和多行注释:不会被jvm解析,就是为了代码阅读性
文档注释:特殊注释,后期能够jvm解析,—生产文档说明书
- **单行注释: **
//单行注释
- 多行注释
/*
注释的文字
* /
- 文档注释
/**
文档相关文字描述
*
2. java中的关键字
关键字:
在Java语言中,每一个关键字有自己的含义(被Java语言赋予特定含义单词)在高级记事本或者IDEA开发工具,关键字有颜色标记;组成关键字的字母都是小写;
class: 表示在定义一个类 (Java中最基本的单元)
格式:class 类名{}
public:权限修饰符 (公共的/公开的/访问权限足够大)
封装的概念----private(私有的/访问权限最小的)
prototected:受保护的
默认修饰符
static:静态修饰符 (基本的概念:共享/共用)
void :Java中的方法(函数),就是一个{}代码块
3. java中标识符规范
标识符:
标识符的组成规则
- 可以是26个英文字母(大小写都可以)
- 可以是0-9的数字
- 可以是$或者_下划线
Java定义标识符:严格区分大小写
注意事项:
1.定义标识符(类名/接口名/方法名/常量/变量名):名字都不能以数字开头
2.定义标识符:起名字,不要出现Java中的关键字
3.起名字,做到四个字"见名知意"
书写规范 :(行业的标准----“阿里规范”)
就是给包,类,以后学习的接口,方法,变量,常量等等起名字的一个字符序列
起名字---->“见名知意”
给类起名字(和接口起名同理的)---->遵循"大驼峰命名法"
- 单个单词:单词首字母大写,其余小写
class Student{}--- 学生类
- 多个单词:第一个单词的字母全部小写,从第二个单词开始每个单词的首字母都是大写,其余小写
class MakeNameDemo{}
class HelloWorld{}
4. 常量以及变量
变量
在程序执行过程,其值在不断变化的称为变量
变量的三要素
- 限定范围—就是限定变量的数据类型
- 变量名—满足标识符的规范(见名知意)
- 初始化值----必须要限定的数据类型要一致!
常量
字面值常量
- 字符串常量:使用双引号括起来的内容 “helloworld”
- 字符常量:使用单引号括起来单个内容 '‘a’
- 整数常量: 100,25----整数默认就是10进制 (进制属于常量的范畴)
- 小数常量:3.14…小数进行减或者除的时候,无限近似于某一个值(计算机—伪计算)jdk提供类一个类:BigDecimal:针对小数进行精确计算的
- 布尔常量:true/false
- 空常量: null —引用数据类型的默认值就是null(是和引用类型相关的)
自定义常量
关键字 “final” 状态修饰符 (最终的/无法更改的)
5. java中的数据类型
基本数据类型
引用数据类型
基本数据类型
- 整数类型
字节类型 byte 占1个字节 范围:-128~127(重点)
短整类型 short 占2个字节
整数(默认类型) int 占4个字节
长整型 long 占8个字节
以后实际开发中整数类型:int和long使用最多的
long用来定义时间格式,如果题
意没有明确用什么数据类型,都是int
- 浮点类型
单精度类型 float 占4个字节
双精度类型 double 占8个字节
以后开发中浮点类型: double使用最多
- 字符类型
char 占2个字节
- boolean类型
boolean 占1个字节
> 引用数据类型
数组,类,接口 类----具体类 抽象类(面向对象中)介绍
6.显式转换与隐式转换
隐式转换:基本数据类型的默认类型提示
byte,short,char三者之间不转换,一旦参与运算,优先提升为int类型,—long—float—double;
int a = 3 ;
byte b = 4 ;
//int类型接收的
int result = a +b ; //a+ int类型的b---将byte类型提示为int,结果为int
显示转换:是将的大的数据类型强制转换小的数据类型
格式:
目标数据类型 变量名 = (目标类型)(表达式或者初始化值) ;
int a = 3 ;
byte b = 4 ;
//byte类型接收结果
// byte result = a +b ; //a+b--->int类型 编译报错
byte result = (byte)(a+b) ; //解决方案:强制类型转换
四. 进制以及Java中运算符
运算符
基本运算符:
- 算术运算符
+,-,*,/,%(模:求余数) (扩展的运算符:++ --)
- 比较(关系)运算符
无论这些符号连接的表达式是简单的还是复杂,结果应该布尔类型类型,true/false
- 逻辑运算符(使用最多的)
基本的逻辑运算符
逻辑单与& ----并列关系
特点:有false,则false;
逻辑单或| ----或的关系
特点:有true,则true
逻辑异或^
特点:相同则为false,不同则为true
逻辑非!
非true,则false;非false,则true;偶数给非是它本身
逻辑双与&& —并列关系
必须同事满足条件,才成立;
逻辑双或|| — 或的关系
有一个满足条件 成立;
- 三目运算符(三元运算符)
格式:
(简单或者复杂的表达式)? 执行成立的结果:执行不成立的结果;
执行流程:1)先判断表达式是true还是false,如果是true,执行成立的结果;
2)如果是false,执行不成立的结果;
重点的运算符
进制:属于常量
进制的相互转换
算术的运算符里面++或者–的使用
赋值运算符的扩展符号的特点:+=…
逻辑运算符:逻辑双与&&和逻辑单与&的区别
三元运算符的格式以及执行流
五. 键盘录入以及流程控制语句
1.键盘录入
键盘录入数据基本步骤:
Scanner:文本扫描器 jdk提供的一个类
1.导包 import java.util.Scanner; 它的位置在class的上面
2.创建键盘录入对象 Scanner sc = new Scanner(System.in) ;
3.接收数据 int result = sc.nextInt() ;
例:
//1.导包
import java.util.Scanner ;
class ScannerDemo{
public static void main(String[] args){
//2.创建键盘录入对象
Scanner sc = new Scanner(System.in) ;
//2.1温馨提示
System.out.println("输入数据吧:");
//3.接收数据
int result = sc.nextInt();
//4.输出
System.out.println("输入的数据是:"+result);
}
}
2.流程控制语句
- 顺序结构---->所有的计算机语言都是遵循顺序结构:
代码依次从上而下加载(从程序入口:java中的main方法)
选择结构语句
if语句
三种格式
if(表达式){
语句;
}
if(表达式){
语句1;
}else{
语句2;
}
if(表达式1){
语句1;
}else if(表达式2){
语句2;
....
}else{
...
}
switch语句-----面试中问的最多的
循环结构语句(开发中使用最多的)
for循环
while循环
do-while循环---开发中这个很少用
Java中的流程控制语句:
三类
顺序结构语句:
从进入到程序的入口之后,代码从上而下依次加载(最简单的一种结构)
举例:
从main进来之后,直接去输出,依次输出...
选择结构语句
if语句-----开发中使用比较多的,尤其格式2:if…else…
switch语句
循环结构语句
for
while
do-while
选择结构语句之if格式1
第一种格式
if(表达式){
语句;
}
第一种格式的执行流程
if(表达式){
语句;
}
1.判断表达式是否成立,如果成立,则执行语句,否则不执行;
选择结构语句if格式2
第二种格式
if(表达式){
语句1 ...;
}else{
语句2...;
}
执行流程:
1.首先判断表达式是否成立,如果成立,则执行语句1...
2.如果不成立,执行语句2...
比较
选择结构语句if格式2和三元的区别
if…else…和三元运算符的区别?
区别:
共同点:都是选择一个结果;(带有选择判断思想)
不同点:
1)格式不同
三元运算符—是一个运算符 —应该要出来具体的结果值
(表达式)?执行true的结果:执行false的结果
if…else…流程控制语句
if(表达式){
语句1;(这里面的语句可能是具体的变量携带的结果或者是输出语句;)
}else{
语句2;
}
2)范围不同
if…else…大于三元运算符:
三元运算符的能够实现,一定能够使用
if…else…实现
但是,if…else…不一定能够使用三元