Java快速入门、IDEA工具的使用
Java的概述
- Java是sun公司1995年推出的,2009年被oracle收购
- Java的爸爸:詹姆斯.高斯林
- Java是一门高级编程语言:语言风格接近人类的自然语言,写程序简单易懂
- Java的流行度很高,商业占用率很高
- Java很重要的特性:可移植性
- Java能干啥?
- 什么都可以干,但是最被市场认可的是企业级开发:京东、淘宝这样的互联网系统
- Java的技术体系
- JavaSE:标准版:Java技术的核心和基础
- JavaEE:企业版:大型互联网企业级解决方案:充分被市场认可
- JavaME:小型版:移动应用的解决方案:没有被市场认可
Java的产品
- JDK:Java的开发者工具包,必须安装它才可以使用Java
- 去Oracle官网下载,安装时不要放在空格和中文路径下
- 企业可能使用JDK8
- LTS:长期支持版:JDK8、11、17
- JDK中要用的两个最重要的程序
- Javac:编译程序
- Java:执行程序
- JDK安装后要验证是否安装成功
- 打开命令窗口:Win+R --> cmd 回车
- 依次输入:Java、Javac、Java -version 看提示有没有问题
- 补充知识:常用命令行命令
- cls:清屏
- cd:进入到某目录
- dir:查看当前目录下的内容
- 盘符:切盘
开发一个Java的入门程序:HelloWorld
- 编写代码
- 建议全英文名称,首字母大写,后缀一定是.java结尾
- 代码写啥
- public class HelloWorld{
- public static void main(String[] args){
- System.out.println("HelloWorld");}}
- 编译代码:javac HelloWorld.java 产生class文件:HelloWorld.class
- 执行代码:java HelloWorld 输出:HelloWorld
Java的执行原理
- Java程序最终会翻译,解释成计算机能识别的机器语言:010101……这样的形式驱动机器干活
- BUG:代表程序出现问题或者漏洞的意思
- DEBUG:解决问题的意思
Path环境变量,JAVA_HOME
- Path的作用:
- 记住程序的路径,方便在命令行窗口的任意目录驱动程序
- 新版本的JDK安装时会自动配置javac和java程序的路径到path环境变量中去。所以,javac和java可以在命令行窗口直接使用
- 重点注意:老版本的JDK安装不会自动配置javac和java程序的路径到path环境变量中去,需要手动配置javac和java到path中去
- path--->安装路径\bin
- JAVA_HOME:安装路径
- 多学一招:
- path--->安装路径\bin 不建议这样配置
- path---->%JAVA_HOME%\bin 建议这样配置
开发工具:Intellij IDEA
- 集成开发工具(IDE工具):
- 优势:工程结构化管理项目、有错误提醒、有智能代码补全……
- IDEA去官网下载安装:傻瓜式安装
- IDEA开发第一个程序
- 创建工程:project
- 创建模块:module
- 创建一个包:package
Java基础语法
- 注释:
- 作用:对程序进行解释说明的文字,不影响程序执行
- 分类:
- 单行注释://
- 多行注释:/* */
- 文本注释:/** */ :文档注释的内容可以提取到程序说明书中去
- 注意:不影响程序执行的原因是编译后class文件中没有注释了
- 字面量:
- 字面值
- 目的:告诉程序员数据在程序中如何书写
- 字面量的分类
- 整数、小数:生活中与程序中的写法一致
- 字符:程序中必须用单引号围起来,且只能有一个字符
- 字符串:程序中必须用双引号围起来,内容随意
- 布尔值:false、true
- 空值:null
- 变量
- 作用:内存中的一块区域,里面存储了一个可以变化的数据
- 格式:数据类型 变量名 = 初始值;
- 赋值(=):从右往左执行
- 变量使用注意事项
- 必须先声明才能使用
- 什么类型的变量只能存放什么类型的数据
- 变量从定义开始到}有效,在一个有效范围内不能定义重名的变量
- 变量定义的时候可以没有初始值,但使用前必须使有初始值
- 变量在计算机中的底层原理
- 变量存储的是数据的二进制形式
- 二进制计算规则:逢二进一
- 文字怎么存储到计算机底层:ASCLL编码表固定了常见字符对应的数字:存储字符对应的二进制形式
- 图片、音频存储的都是二进制形式
- 补充知识
- 二进制转十进制:乘权求和
- 二进制转八进制:
- 作用:方便观察二进制
- 方法:每三位一组计算求和
- 八进制格式:以0开头
- 二进制转十六进制:
- 作用:方便观察二进制
- 方法:每四位一组计算求和
- 十六进制格式:以0x开头
- 二进制格式:以0b开头
- 数据类型:
- 定义变量:数据类型 变量名 = 初始值;
- 作用:约束变量只能存储什么类型的数据,帮助定义出不同类型的变量
- 数据类型分类
- 引用数据类型:String
- 基本数据类型
- 整型
- byte:字节整型
- 占1个字节
- 范围:-127-128
- short:短整型
- 占2个字节
- int:整型(默认)
- 占4个字节
- long:长整型
- 占8个字节
- 浮点型(小数)
- float:单精度
- 占4个字节
- double:双精度
- 占8个字节
- 字符型:
- char
- 占2个字节
- 布尔型:
- boolean
- 占1个字节
- 注意事项:整型默认是int类型,需要转换成long类型在后面加L/l
- 注意事项:小数默认是double类型,需要转换成float类型在后面加F/f
- 关键字\标识符
- 关键字:java自己使用的,我们不能用来取名字
- 标识符:我们自己取的名字
- 规则:不能用数字开头,不能用关键字,区分大小写
- 类型转换
- 原因:开发中会存在不同类型的变量或数据赋值给其他类型的变量,也存在不同类型的数据一切运算,其结果类型也要确定下来
- 自动类型转换:
- 原理:小范围类型的变量可以直接赋值给大范围的变量
- 范围信息:byte ->short(char) ->int ->long ->float ->double
- 形式:
- byte a = 21;
- int b = a;
- 注意:
- char ch = 'a';
- int code = ch;
- 表达式的自动类型转换
- 含义:在表达式中,小范围类型的变量会自动提升到大范围进行计算
- 结论:表达式的最终结果数据类型是由表达式中的最高数据类型决定的
- 注意:byte、short、char在表达式中直接提升成int进行运算
- 面试笔试题:
- byte b1 = 21; byte b2 = 22;
- 正确形式:
- int b3 = b1 + b2;
- byte b3 = (byte)(b1 + b2);
- 错误形式:byte b3 = b1 + b2;
- 强制类型转换
- 含义:大范围类型的变量或者数据不能直接赋值给小范围类型的变量,负责报错!必须进行强制类型转换才可以
- 格式:数据类型 变量 = (数据类型) 其他类型的数据/变量
- 注意:
- 强制类型转换可能出现数据丢失
- 浮点型数据强制转换为整形数据,保留整数部分,去掉小数部分
- 运算符:
- 基本算术运算符
- 常见:+、-、*、/、%
- 注意:/两个整数相除时结果一定是整数
- +符号做连接符
- 场景:+符号与字符串一起运算时,充当连接符,连接后的结果是一个字符串
- 识别技巧:能算则算,不能算就在一起
- 自增自减运算符
- ++:对变量进行+1操作
- --:对变量进行-1操作
- 注意事项:
- 只能操作变量,不能操作字面量
- ++或--,单独使用,放在变量前后,没有区别
- ++或--,如果不单独使用
- 在变量前:先+1或-1在使用变量
- 在变量后:先使用变量,在+1或-1
- 赋值运算符
- =、+=、-+、*=、/=、%=
- 含义:如a+=b;
- 等价于:a = (a的类型)(a + b)
- 用处:
- 适合做数据的累加操作
- 自带强制类型转换
- 关系运算符
- ==、!=、>、>=、<、<=
- 作用:判断是否满足条件,返回true或false
- 逻辑运算符
- &&、&、||、|、! 、^
- &&(短路与):且的意思,前后都是true,结果就是true,如果前面是false后面不执行
- &(逻辑与):且的意思,前后都是true,结果就是true,如果前面是false后面要执行
- ||(短路或):或的意思,只要前后有一个true,结果就是true,如果前面是true后面不执行
- |(逻辑或):或的意思,只要前后有一个true,结果就是true,如果前面是true后面要执行
- !(取反):!false = true; !true = false;
- ^(异或):前后一样返回false,不一样返回true
- 三分运算符:做分支选择,关键是格式
- 条件表达式 ?值1 : 值2;
- 运算符优先级:运算符谁先执行谁后执行的情况
- () 优先级最高
- *、/高于+、-
- &&高于||
- 案例知识:键盘录入技术
- Java自己提供的给程序员调用的
- API文档:应用程序编程接口,技术说明书,告诉我们该怎么使用Java的程序
- 键盘录入技术:
- 导包(自动导包):import java.util.Scanner;
- 创建一个扫描器对象:Scanner sc = new Scanner(System.in);
- 等待接收用户的数据:
- int age = sc.nextInt();
- String name = sc.next();