JAVA学习
认识计算机及JAVA
计算机是一个可以高速处理海量智能的电子设备.
由两部分组成:软件和硬件,故没有安装任何软件的计算机也称为裸机
软件分为系统软件(操作系统)和应用软件(客户端办公软件)
软件结构的划分:
C/S结构:客户端和服务器端的交互
特点:客户端软件必须升级才能使用服务器的高版本功能
B/S结构(架构):浏览器和服务端交互
特点:只要保证计算机上有浏览器,无论高版本还是低版本都可以访问服务器
B/S结构 后期需要掌握浏览器(解析前端页面和服务器交互)
前端学习:Javascript 后端学习 :JavaEE核心技术
jsp模板引擎
jdbc:java数据库连接
软件:使用计算机的数据和指令的集合
数据:组成软件的核心代码
指令:计算机的符号(dos窗口指令)
软件开发:使用开发工具制作软件
开发工具:前期 高级记事本 notepad++ 后期 idea开发工具软件 前端开发工具HbuliderX或者webstrom
人机交互
方式1:图形界面化
方式2:命令行方式(使用指令)
基本操作:窗口键+r-----cmd--------进入dos小黑窗口控制台
常用的dos窗口命令
1.盘符号: 盘符切换
2.cd: 进入指定文件夹
3.cd:多级目录的路径 进入多级目录
4.cd.. 回退到上级目录
5.cd\ 回退到根目录
6.dir 查看详细目录信息
7.md 文件夹名称 新建文件夹
8.copy con 文件名称带上后缀名 回车进入编辑模式 书写内容 ctrl+z编辑完成 回车
9.rd 文件夹名称 删除文件夹 注意:只能删除空目录
10.del 文件夹名称 删除文件(可批量删除,需要加上文件后缀名)
11.cls 清屏
12.rd扩展指令
rd/s 文件夹名称: 询问是否删除
rd/s/q 文件夹名称: 不询问是否删除 暴力删除 慎用
JAVA发展历史
Java之父 詹姆斯 高司令 1995年推出
JAVA平台版本(重点)
JavaSE:针对桌面应用程序解决方案
JavaME:针对嵌入式设备提供一套解决方案(标准版.小型版)
JavaEE:针对企业级开发解决方案(企业版)
需要学习JavaEE的13种核心技术:Servlet.Jsp.Spring.......
Java语言的特点以及Jdk.Jre.Jvm
Java语言的三个特点:简单性,健壮性,分布式(良好的移植性和开源)
跨平台 开放源代码
Jdk 开发工具包
Jre 运行环境
Jvm 虚拟机
三者关系:Jdk>Jre>Jvm 所以安装Jdk就可以
面试题:
Java语言是跨平台的吗?
是跨平台,因为在不同的操作系统上运行Java程序,而Java程序需要运行Jvm上,只需要在不同的平台上安装对应的Jvm就可以
编写第一个JAVA代码
class 类名{
public static void mian(String [] args){
System.out.println("书写内容");
}
}
固定格式
运行需要用Javac 编译源文件形成 .class文件 然后用Java 类名 回车输出语句
配置环境变量
推荐使用方式:
在系统变量中新建HOME_JAVA,然后再path变量中用%HOME_JAVA%替换\bin之前的地址
而HOME-JAVA的地址就是Jdk的安装路径
注释
在计算机编程语言中为了提高代码阅读性,就需要给某些代码加上文字注释
普通注释:单行注释和多行注释分别用 /和 /* 内容 */表示
文档注释:/** 内容 **/ 特殊注释,可以被解析
关键字
关键字就是被Java语言赋予特定含义的单词
package:包
class:定义类的格式
public:权限修饰符
static:静态修饰符号
......
变量里面的基本数据类型都是关键字(注意:goto/const这两个字作为"保留字去使用")
标识符
标识符也就是起名字
对包类,类名,接口名,变量名,方法名,常量名起名字
组成规则:
1>数字0-9
2>英文字母,区分大小写
3>$
4>下划线_
对包名起名字:
单机包:字母都是小写
多级包:包名和包名都是用.隔开
对类名和接口名起名字:(大驼峰命名法)
定义类如果是单个单词,首字母大写,其余小写
如果是多个单词组成,每个单词首字母大写,其余小写
对变量名和方法名起名字:(小驼峰命名法)
如果是单个单词,那么单词全部小写
如果是多个单词,那么第一个单词字母小写,从第二个单词开始每个单词首字母大写,其余全小写
对常量起名字:
如果是单个单词,字母全部大写
如果是多个单词,字母全部大写中间用下划线隔开
常量
常量就是在程序过程中其值不发生改变的量
分类:
1>字符串常量 ("-----")
2>字符常量 ('--') 不能出现 'ab'这种
3>常数常量
4>小数常量
5>布尔常量
6>空常量
自定义常量:跟一个关键字final(面向对象讲)
变量
变量就是在程序过程中其值发生改变的量
变量的三要素:
数据类型,变量名,初始值
定义变量的方式:
先定义在赋值
数据类型 变量名;
变量名 = 值
定义时直接赋值
数据类型 变量名 = 初始值
基本数据类型
基本数据类型分为四类八种
1>整数型:默认int
byte 字节型,short 短整型,int ,long 长整型
2>浮点型:默认double
float 单精度类型 定义时后面加上f/F
double 双精度类型
3>字符型:
char类型:里面的内容"字符"
4>布尔型:
boolean 不参与运算,只判断逻辑true flase
基本数据类型在开发中最多的是int,其次是long
long定义最多的是时间毫秒值
基本数据类型里面的浮点型使用最多的是double,常定义市场价格
注意事项:在Java语言中语法结构非常严谨,同一个变量不能被定义多次,现在定义的都是局部变量,在一行定义一个变量即可
进制
任意进制到十进制的转换:
位权展开法 系数*基数的权次幂相加的结果
十进制到任意进制的转换:
除基取余,除到商为零,余数反转
隐式转换
在Java中隐式转换[基本数据类型中非常重要的语法]
boolean不参与任何运算,不能转换
byte,short,char三者之间不会相互转换,一旦参与运算会优先提升为int ---->long----->float---->double
显示转换(强转)
显示转换目的就是将大的数据类型转换成小的数据格式
目标数据类型 变量名 = (目标数据类型)(初始值/表达式)
面试题 byte b1=3,b2=4,b;
1>b=b1+b2 b1先提升Int b2提升int 结果是int类型7,byte接收不了int类型,就得使用强转
b =byte(b1+b2)
扩展算术运算符的特点
++或者--
使用方式
1>不参与运算,单独使用
在数据前面或者后面都是对当前数据进行自增或者自减1
2>参与运算
在数据前面,都是先自增1或者自减1然后参与运算
在数据后面先运算,然后再自增1或者自减1
逻辑运算符
面试题:
逻辑双与&&和逻辑单于&有什么区别?
共同点:
无论是单与还是双与都是表达并列关系
而且都是false和false
不同点:
逻辑单与对多个并列条件再执行的时候效率比较低,因为都是需要将左右表达式执行一遍
逻辑双与连接表达式如果左边为false则右边不执行,具有短路效果,执行效率高
逻辑双与&&和逻辑双或||:
逻辑双与连接表达式如果左边为false,则右边不执行(具有短路效果)
逻辑双或连接表达式如果左边为true,则右边不执行(具有短路效果)
三元运算符
格式:
(表达式)?执行true结果:执行false结果;
执行流程:
表达式可以简单也可以复杂,如果结果是true成立,则执行成立的结果,否则不成立,则执行false的结果
位运算符
基本的位运算符号:
位与& 位或| 位异或^ 反码~ 位异或^的特点:一个数据被另一个数据异或两次,其值是它本身
移位符号:
<<左移 将这个数据补码进行左移,使用<<符号左边的数据乘2的移动次幂 (3<<2 3*2^2)
>>右移 将>>左边的数据除以2的移动次幂(24>>2 22/2^2)
>>>无符号右移
键盘录入
为了进行数据逻辑判断操作的时候,程序更灵活一些,jdk提供了类供我们使用 文本扫描器 java.util.Scanner类
使用步骤:
1>导包:位置在class上面 import java.until.Scanner
2>创建文本扫描器
Scanner 变量名 = new Scanner(System.in)
3>提示:请输入数据
System.out.println("提示")
4>通过文本扫描器录入数据
int 变量名 = 变量名.nextInt()
5>使用这个结果变量名进行操作
顺序结构语句
流程控制语句
顺序结构语句:比较简单,所有程序都是通过jvm调用main进行的(入口)
选择结构语句 if switch
循环结构语句 for while dowhile
if 结构语句格式2:
if(表达式){
语句1;
}else{
语句2;
}
开发中使用最多的格式
执行流程:
表达式成立,则执行语句1:否则执行语句2;
注意事项:
无论if格式哪一种,不能在if后面来一个;有大括号{时候不能有分号,有分号的地方不能有左大括号{
if 结构语句格式3:
if(表达式){
语句1;
}else if(表达式2){
语句2;
...
...
...
}else{
语句n;
}
语句格式3:针对多种情况进行判断
执行流程:
首先判断表达式1是否成立,成立则执行语句1;否则不成立,继续判断表达式2是否成立,成立,则执行语句2;不成立....依次判断