计算机的基础知识
什么是计算机
计算机硬件
计算机软件
软件开发
计算机语言
人机交互
常用的DOS命令
创建目录
md (make directory)文件夹名称(目录名称)
创建文件
copy con 文件名称带上后缀名 ----按回车键---进入编辑模式,书写文件内容,书写完成成之后,按---ctrl+z,编辑完成----回车即可!
删除指定的文件夹(目录)
rd 文件夹名称(目录名称) 注意:只能删除空目录
rd (remove deirectory)
删除文件
del 指定文件名称 也可以批量删除所有同名的后缀的文件
rd的扩展指令
在windows系统上,想删除带内容的目录(里面有文件或者子文件夹)
rd /s 文件夹名称(目录) :询问删除删除带内容的目录? y/n 选择y就是删除,n不删除
rd /s /q 文件名称(目录) :不询问删除带内容的目录 (属于暴力删除 这个指令慎用!)
系统指令
查看ip地址 ipconfig
ping ip地址或者域名:查看自己本机是否通信
ping指令(类似于 二战的时候:驱逐舰找潜艇,利用声呐系统)
如果当前ping和别的计算机之间,如果通信不了,那么两台计算机的防火墙没有关闭,线下的时候,提前将电脑防火墙关闭
java的职业规划
1)Java开发工程师(主业),毕业之后肯定需要从事这个岗位1-3年(3-5年)不等;
--->项目经理(pm认证 项目管理:不去做技术方面,管理项目进度,成本,人员配备)
--->架构师(系统设计,整个项目框架搭建)....
2)全栈工程师(可能一些自研:需要我们Java的写前端)
3)运维开发
3)测试开发:(白盒测试需要懂编码, Java/Python...)
java语言可以完成哪些事情
大到物流系统,网银系统,医院系统以及互联网相关行业,小到超市以及便利店收银系统等等
都可以使用Java语言(360行业都会有)
java的平台版本
JavaSE(Standard Edition): 针对桌面应用程序的解决方案
JavaME( Micro Edition) :针对嵌入式设备提供的一套解决方案
移动端:Anroid基于JavaSE,还需要anroid相关的广播,订阅,服务,,,
Ios系统基于C语言
JavaEE( Enterprise Edition) :针对企业级开发解决方案(以后就是搞这个的!)
学习JavaEE核心技术13种:
Servlet
Jsp
Spring
Springmvc
Mybatis
Springboot
关于java语言的介绍以及jvm.jre.jdk的介绍
Java简单性,健壮性,分布式, (良好的移植性,开源)
JVM:Java Virtual Machine Java虚拟机
假象计算机,自己的网络,自己的内存区域等等;
Jre:Java Runtime Environment Java运行环境,所有的Java应用程序要运行,计算机上必须有Java环境的支持,没有这个东西,运行不了,而Jre里面包含了Jvm以及Java程序运行时所有需要的核心类库
Jdk:Java Development Kit :Java开发工具包,里面有很多的开发工具 tools.jar包,里面有工具类(Arrays:数组工具类,Collections:集合工具类...),还包括了jre
三者的关系:Jdk > Jre > Jvm
编写第一个java代码
class HelloWorld{
public static void main( String [] args){
System.out.println("HelloWorld");
}
}
写完后把后缀名改成.java,然后打开dos窗口进行编译和运行
配置path环境变量
第一种方式:
1)将jdk的bin目录的路径复制
win10/win11--->此电脑--->右键----属性----->高级系统上设置---->环境变量---->系统变量,不要在用户变量找path,在系统变量找path (用户变量,一个计算机可以有多个用户)
path不要删除别的东西,别的东西都是系统配置,谨慎不要随意删除!
将1)里面jdk的bin目录的路径复制过来放在path里面,
D:\develop_software\Java\jdk1.8.0_162\bin配置完成之后,打开dos窗口,在任何路径下都可以使用javac和java(c盘系统盘,有的文件夹没有权限)
输入javac
java
java -version 都是有提示信息,说明可以用了(如下图:)
第二种方式:
配置方式1的弊端:
1)就是当我们jdk版本升级了,需要手动更改系统变量的里面path,可能改动过程中不小心将别的环境变量误删了,为了避免这个问题我们不能改动path了,使用方式2配置! (主要原因)
2)二阶段学习tomcat服务器,服务器是使用Java编写的,它在启动的时候,必须要在系统变量里面JAVA_HOME,这也是为什么我们需要使用方式2的配置;如果系统变量没有JAVA_HOME,那么tomcat的web服务器就会启动失败(闪屏) (在二阶段讲到tomcat服务器去说)
配置方式步骤
1)赋值jdk安装目录的路径,不是bin目录 D:\develop_software\Java\jdk1.8.0_162
2)此电脑---->右键---->选择属性---->高级系统设置---->环境变量---->系统变量
系统变量----->新建一个变量名: JAVA_HOME
变量值:就是1)的路径
3)在path里面 引入JAVA_HOME对应的变量值的路径
path环境变量里面的最前面 %JAVA_HOME%\bin ,如果win10/win11 点击path,隔段形式,后面不用分号
如果是在一行上bin后面带上分号;
好处:以后jdk版本升级,需要改动path? 不需要,只需要改动JAVA_HOME变量值里面的路径
Path环境变量的执行流程
1)首先肯定需要在指定目录中找对应的.java文件,
举例:如果.java文件是在D盘根目录下,肯定需要现在这个D盘里面 javac xx.java--->进行编译和运行
如果当前指定目录有这个java文件,直接编译和运行!
2)如果在当前这个指定目录找不到,它就会去系统变量path环境变量里面找 :
jdk安装目录的bin里面去找,如果这里面也没有,最终,提示----"找不到文件!"
注释
注释:在计算机编程语言为了提高代码阅读性,给某些代码进行标记文字提示,让程序阅读性更高一些,
作为中国人,肯定加入中文字符,但是一般习惯写注释,因为代码给人看的(人:程序员),接手别人的项目,它代码没有注释,
很难受!注释:一行代码---标记了很多行注释,阅读性比较差!(简单标记)
Java中的注释的分类:
单行注释://书写内容
多行注释:/* 书写内容 */
前面两个普通注释:主要就是来标记代码,提高代码阅读性
文档注释: /** 书写内容 */ :特殊注释,可以被解析的
关键字
Java的关键字:
被Java语言赋予特定含义的单词,叫关键字!
在高级记事本notepad++以及editplus记事本以及开发工具idea(以后用的这个)/eclipse等等
针对关键字有一种颜色标记
package:包名(文件夹/目录结构) :以后在开发中代码分包,分层的 (真实的意义:在面向对象部分讲解)
class:定义类的格式,Java中最基本单元就是类 固定格式 class 类名{}
public:权限修饰符 (公共的/公开的,任何人都可以访问的),访问权限足够大
还有其他权限修饰符private,protected ,具体的讲解在面向对象部分去讲
static:静态修饰符 (面向对象部分讲解,本身的含义被"共享,共用")
变量里面的基本数据类型都是关键字
标识符
标识符:(起名字,"见名知意")
对包名,类名,接口名,变量名,方法名,常量名起名字的一个字符序列!
组成规则:
1)有0-9到数字组成
2)字母字符(26个字母)
3)$符号
$)_下划线
对包名(目录结构package) 起名字规范 (面向对象部分讲解 包的含义)
单级包:(字母都是小写) com包名
xx.java
多级包:包名和包名使用.隔开
com.qf
com下面会有一个qf文件夹
xx.java文件
对类名和接口名起名字是同样的:(遵循阿里规范:大驼峰命名法)
定义类的时候:如果类名是单个单词,首字母大写,其余小写
举例
class Hello{}
class Demo{}
如果类名它是多个单词组成,每个单词首字母大写,其余小写
举例:
class HelloWorld{}
class MakeNameDemo{}
class StartGame{}
对变量名和方法名起名字是相同 规范: (遵循小驼峰命名法)
如果变量名是一个单词,那么 单词的字母全部小写
举例: 定义价格
int price = 5;
如果变量名是多个单词,那么第一个单词字母小写,
从第二个单词开始,每个单词首字母大写 ,其余小写!
举例:
定义苹果价格
int applePrice = 7;
对常量起名字(以后看到java的源码里面常量的格式:使用的多个单词写的)
如果常量名,单个单词 ,字母全部大写
举例 HELLO
如果是多个单词,字母全部大写,单词和单词之间用下划线隔开!
jdk提供的Thread类 :线程
定义线程优先级三个常量:只看格式 (最小优先级,默认优先级,最大优先级)
public final static int MIN_PRIORITY = 1;
public final static int NORM_PRIORITY = 5;
public final static int MAX_PRIORITY = 10;
注意事项:
1)起名字,可以数字,但是不能以数字开头
2)Java严格区分大小写,一定要起名字见名知意
3)标识符不能是Java中的关键字
常量
常量在程序过程中,其值不发生改变的量!
字面值常量
1)字符串常量:使用英文的符号"" 双引号括起来的任何内容都是字符串
举例
"helloworld"
"我爱高圆圆"
"今天天气不好,心情是绿色的!"
2)字符常量:使用英文的'' 单引号阔括起来的单个字符内容
'a' :字符小a
'A' : 字符大A
'0' : 字符0
不能'ab'---jvm在解析的时候,认为这个字符串,不是单个内容,解析错误!
如果字符不参与运算,就是字符本身!
如果字符参与运算的时候,此时 字符(键盘上的每一个按键都是字符)
它就会去找ANSI码表里面的字符对应的值,进行运算;
'a' --- 97
'A' --- 65
'0' --- 48
3)整数常量
100,97
4)小数常量
3.14
12.34
5)布尔常量: true/false
6)空常量: 一般不能直接输出null
在引用数据类型(后面讲数组的说),默认值是null
变量
在程序过程中,其值发生改变的量;
学习Java编程语言,在Java中,如何定义变量?
变量的三要素
1)数据类型
2)变量名
3)初始化值
定义变量的方式
1)先定义,然后在赋初始化值
数据类型 变量名;
变量名 = 值; (在使用这个变量之前,必须赋值,否则编译报错!)
2)要么直接定义时候赋初始化值
数据类型 变量名 = 初始化值;
数据类型有哪些
分为两大类
基本数据类型:
四类八种
1)整数类型: 有四种,默认int (讲课过程,没有明确类型都是int)
byte:字节类型 占1个字节 范围:-128~127(必须记住)
short:短整型 占2个字节
int(默认) 占4个字节
long:长整型 占8个字节
在定义long 的时候,规定,在初始化值加上L或者l
2)浮点类型:默认double
单精度类型float ,在定义float类型后面规定, 占4个字节
需要标记,在初始化值的后面加上F或者f
双精度类型duoble: 占8个字节
3)字符类型:
char: 里面的内容'字符' 占2个字节
4)布尔类型:开发中,逻辑判断的true还是false的结果
boolean 一般boolean不参与运算,只是表示true或者false 占1个字节
基本类型里面整数类型开发中:
用最多的int,其次long
(long类型定义时间毫秒值,后期通过常用类的功能,将系统时间得到时间毫秒值)
基本类型里面的浮点类型:使用最多的double(市场价格/商场价格...)
引用数据类型:(后面 面向对象说 讲数组里面去说)
数组,类,接口
类(具体类/抽象类)
java中的运算符
运算
对常量或者变量进行操作的过程称为运算
运算符
对常量和变量进行操作的符号叫做运算符
操作数
参与运算的数据叫做操作数
表达式
用运算符将常量和变量连接起来的式子叫做表达式
算术运算符
+的几种作用
/和%的区别
/获取的是操作的商,%是获得除法操作的余数
--和++在值前和值后的区别
在参与运算的时候--或者++在值前那么就先自增或者自减再参与运算
在值后就是先参与运算再进行自增或者自减
赋值运算符+=,-=,*=,/=,%=
=为基础的赋值运算符,其他的为扩展的赋值运算符
扩展赋值运算符+=,-=,*=,/=,%=,有一个特点:隐藏了强转类型转换
比较运算符注1:比较运算符的结果都是boolean型,也就是要么是true,要么是false。
注2:比较运算符 “==〞不能误写成“=".
逻辑运算符&和&&的区别
逻辑双与&&和逻辑单与&有什么区别?
共同点:
无论是逻辑单与&还是逻辑双与&&都是表达并列关系,
而且都是有fasle则false!
不同点:
逻辑单与&,对多个并列条件在执行的时候,效率比较低,因为都
需要将这个符号左边的表达式和右边的表达式都需要执行一遍!
逻辑双与&& ,
连接的表达式如果左边为false,则右边不执行(具有短路效果)
开发中扩展的逻辑运算符,代替基本的运算符,执行效率高!|与||的区别
单或|:有true则true
逻辑双或||:
连接的表达式如果左边为true,则右边不执行(具有短路效果)
位运算符基本的位运算符号:
位与&
位或|
位异或^
反码~
移位符号:
<< 左移 结论
>> 右移 结论
>>> 无符号右移
三元运算符格式:
(表达式)?执行true的结果:执行false的结果;
执行流程:
表达式可以简单可以复杂,如果结果是true成立,则执行成立的结果
否则不成立,则执行false的结果
强转类型转换
显示转换:强转类型转换:就是将大的数据类型---转换成小的数据格式
目标数据类型 变量名 = (目标数据类型)初始化值;
隐类型的转换
byte,short,char三者不会互相转换,一旦参与运算会优先转化为int--->long--->float--->double(默认类型提升也成为了隐式类型转换)
键盘录入数据--->jdk提供文本扫描器java.util.Scanner
为了进行数据逻辑判断操作的时候,程序更灵活一些
Jdk提供了类供我们使用----->文本扫描器 java.util.Scanner类
在Java中,只要我们用的其他类,只要不是java.lang.xxx类都需要导包
java.lang.String
java.lang.Integer
java.lang.Math
.....
使用步骤:
1)导包 :位置是在class的上面
import java.util.Scanner ; //用谁导谁
2)创建文本扫描器 ----java中的关键字 new 创建对象(具体在面向对象中讲)
Scanenr 变量名(称为"键盘录入对象名") = new Scanner(System.in) ; 固定格式 变量名 ,自己起名字
3)友情提示 "请输入一个数据:"4)通过文本扫描器录入数据 (整数默认int)
使用2)的变量名
int 结果变量名= 变量名.nextInt() ; //.nextInt() :调用文本扫描器的提供功能,录入int类型5)使用这个结果变量名来进行操作
流程控制语句
顺序结构语句
选择结构语句
if语句(三种格式if/if...else/if ...else if...else)
switch语句(考点)
循环结构语句
for循环:开发中常用的
while循环:
do-while循环: java源码里面使用多一些 (工程上使用的比较少)