Java基础知识 --狂神说笔记Day1
Java基础知识 --狂神说笔记Day1
- 相关知识及环境配置
-
特性和优势
- 简单
- 面向对象
- 可移植性
- 高性能
- 分布式
- 动态性
- 多线程
- 安全性
- 健壮性
-
Java三个版本
- JavaSE:标准版(桌面程序、控制台开发)
- JavaME:嵌入式开发(手机、家电)
- JavaEE:企业级开发(web端、服务器开发)
-
JDK JRE JVM
- JDK: Java Development Kit
- JRE:Java Runtime Environment
- JVM:Java Virtual Machine
-
卸载JDK
- 删除java安装目录
- 删除系统变量里的JAVA_HOME
- 删除系统变量path下关于Java的目录
- java -version检查是否删除
-
编译型和解释型
-
IDEA使用
- psvm:public static void main(String[] args)
- sout:System.out.println("");
- 快速补全分号:ctrl+shift+enter
-
java基础语法
-
注释
-
单行注释://
-
多行注释:/* */
-
文档注释:JavaDoc
/**
*@Description:
*@
*/
-
-
标识符和关键字
- 关键字
-
标识符规则
- 以 字母、$、_ 开始
- 首字母后可以是 字母、$、_ 的任意组合
- 不能使用关键字作为变量名或方法名
- 大小写敏感
-
数据类型
- Java是强类型语言:要求变量的使用要严格符合规定,所有变量必须先定义后使用
- Java数据类型分为两类:
- 基本数据类型
- 数值类型
- 整数类型
- byte 1个字节 -128~127
- short 2个字节 -32768~32767
- int 4个字节 -2147483648~2147483647
- long 8个字节(在数字后面加个L)
- 浮点类型
- float 4个字节(数字后面加个F)
- double 8个字节
- 字符类型:char 2个字节
- 整数类型
- Boolean类型:1位 true/false
- 数值类型
- 引用数据类型
- 类
- 接口
- 数组
- 基本数据类型
-
数据类型拓展(面试)
-
进制
- 二进制:0b开头
- 十进制:无
- 八进制:0开头
- 十六进制:0x开头
-
浮点数拓展
- float是有限的,离散的、存在舍入误差 接近但不等于 不要用浮点数比较
- 银行业务用BigDecimal
-
字符拓展
-
所有的字符本质还是数字 编码 Unicode 2字节:65536种编码
-
String a = new String("hello word");
String b = new String("hello word");
System.out.println(a==b);
输出false;
-
String c = "hello word";
String d = "hello word";
System.out.println(c==d);
输出true
从内存角度分析
-
-
-
类型转换
-
低--→高
byte、short、char→int→long→float→double
-
强制类型转换 高→低
(类型)变量名
-
自动类型转换
-
注意点:
- 不能对bool值进行转换
- 不能把对象类型转换为不相干类型
- 在把高容量转换到低容量的时候,强制类型转换
- 转换的时候可能存在内存溢出或精度问题
- 操作比较大的数字的时候,主义溢出问题
-
-
变量、常量、作用域
-
运算符
- 位运算
- A&B:每位进行与运算,有一位为0结果为0
- A|B:每位进行或运算,有一位为1结果为1
- A^B:异或
- ~B:取反
- 位运算
-
包机制 为了更好地组织类,用于区别类名的命名空间
- package pkg1[.pgk2[.pkg3...]]
- import 导入该包
-
JavaDoc:生成API文档
- @author 作者名
- @version 版本号
- @since 指明需要最早使用的jdk版本
- @param 参数名
- @return 返回值情况
- @throw 异常抛出情况
生成文档命令:
javadoc -encoding UTF-8 -charset UTF-8 Java文件名.java
使用IDEA生成JavaDoc文档:
tools→Generate JavaDoc→选择Output directory
设置语言和编码集 -encoding utf-8 -charset utf-8
-
增强for循环(遍历数组、集合)
for(声明语句:表达式){
//代码
}
声明语句:声明新的局部变量。该变量的类型必须与数组元素的类型匹配,其作用域限定在循环语句块,其值与此时数组元素的值相等
表达式:要访问的数组名,或者是返回值为数组的方法
-
for循环打印*号三角形:
for(int i=1; i<=5; i++){
for(int j=5; j>=i; i--){
System.out.print(" "); //打印每行的空格
}
for(int j=1; j<=i; j++){
System.out.print("*"); //打印每行的左半部分星号
}
for(int j=1; j<i; j++){
System.out.print("*"); //打印每行的右半部分星号,j<i 每行需要少打印一次
}
System.out.println();
}
-
方法:语句的集合,它们在一起执行一个功能
- 方法是解决一类问题的步骤的有序集合
- 方法包含于类或对象中
- 方法在程序中被创建,在其他地方被引用
- 设计原则:一个方法只完成一个功能
-
方法重载规则
- 方法名称必须相同
- 参数列表必须不同(个数、类型、参数排列顺序 不同)
- 仅仅返回类型不同不足以成为方法的重载
- 实现理论:方法名称相同时,编译器会根据调用方法的参数个数、类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错。
-
命令行传参(传参数给main函数)
-
可变参数
-
在方法声明中,在指定参数类型后加 ... (可以传入多个同类型的变量,以数组形式传入)
-
一个方法只能指定一个可变参数,必须是方法的最后一个参数。
-
例: public void printMax(double... numbers)
此时传入的numbers就会是一个数组
-
-