欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

全面入门JavaSE:韩顺平的详细笔记第一部分

最编程 2024-08-02 21:38:45
...

Java核心笔记


0.导论

标柱注释:

  • 单独重点加粗
  • 单独背诵下划线
  • ⭐️重点
  • ⭐️⭐️重点的重点

学习方法:

  • 需求——>知识点——>基本原理语法——>快速入门(基本程序)——>技术细节


1 java概述


1.1转义字符


  • \t  一个制表位,实现对齐功能
  • \n  换行
  • \\  一个\
  • \"  一个"
  • \r  回车


1.2注释


  • 单行注释:  //注释文字
  • 多行注释:  /*注释文字*/
  • 文档注释:
/**
* @author
* @version
*/



1.3代码规范⭐️


  • 类、方法的注释,要以 javadoc 的方式来写
  • 注释详细,着重告述读者为什么这样写,如何修改,注意什么问题等
  • 使用tab、shift + tab
  • 运算符和 = 两边习惯性各加一个空格
  • 源文件使用utf-8编码
  • 行宽度不要超过80字符
  • 代码编写次行风格和行尾风格


1.4  JDK  JRE⭐️


  • JDK(java开发工具包)
  • JDK = JRE + java开发工具
  • JRE = JVM + Java的核心类库
  • JVM(java虚拟机)


2 变量


2.1 变量


  • 变量相当于内存中一个数据存储空间的表示,你可以把变量看做是一个房间的门牌号,通过门牌号我们可以找到房间,而通过变量名可以访问到变量(值)

基本介绍

int age = 20;
double score = 88;
char gender = '男';
String name = "jack";



注意事项和细节:

  1. 变量表示内存中的一个存储区域[不同的变量,类型不同,占用的空间大小不同]
  2. 该区域有自己的名称[变量名]和类型[数据类型]
  3. 变量必须先声明,后使用,即有顺序
  4. 该区域的数据可以在同一类型范围内不断变化
  5. 变量在同一个作用域内不能重名
  6. 变量=变量名+值+数据类型


2.2 基本数据类型⭐️


网络异常,图片无法展示
|


2.2.1 数值型



整数类型  (byte [1]  short[2]  int[4]  long [8])

  1. Java的整型常量(具体值)默认为 int 型,声明long型常量须后加‘l’或‘L’
  2. java程序中变量常声明为int型,除非不足以表示大数,才使用long
  3. bit: 计算机中的最小存储单位,byte:t算机中基本存储单元,1byte = 8 bit

浮点(小数)类型 (float [4]  double [8])

  1. 浮点数=符号位+指数位+尾数位
  2. 尾部可能丢失,造成精度损失
  3. Java 的浮点型常量(具体值)默认为double型,声明float型常量,须后加'f'或'F'
  4. 十进制数形式:5.12    512.0f    .512(必须有小数点)科学计数法形式:5.12e2    5.12E-2
  5. 通常情况默认使用double

字符型(Char[2])

  1. 使用单引号表示
  2. Java中还允许使用转义字符来将其后的字符转变为特殊字符型常量
  3. char的本质是一个整数,输出时是unicode码对应字符
  4. char类可以进行运算

布尔型(boolean[1])

  1. boolean类型数据只允许取值true和false,无null
  2. boolean类型占1个字节
  3. 不可以用0或非0的整数代替false和true,与C语言不同


2.3 基本数据类型转化


2.3.1 自动类型转换


  • java程序在进行赋值或者运算时,精度小的类型自动转换为精度大的数据类型

基本介绍:

int = 'c';
double d = 80


  • char<int<long<float<double
    byte<short<int<long<float<double

转换规则:


注意事项和细节


  1. 有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,再进行计算
  2. 我们把精度(容量)大的数据类型赋值给精度(容量)小 的数据类型时,就会报错,反之就会进行自动类型转换。
  3. byte    short    char    之间不会相互转换
  4. byte    short    char    计算是首先转换为int类型
  5. boolean不参与转换
  6. 自动提升原则:表达式结果的类型自动提升为操作数中最大的类型


2.3.2 强制类型转换


  • 自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符(),但可能造成精度降低或溢出,格外要注意

基本介绍:

int i = (int)8.8;
System.out.println(i);



注意事项和细节


  1. 当数据从精度  大——>小,就需要使用到强制转换
  2. 强转符号只针对于最近的操作数有效,往往会使用小括号提升优先级
int y = int(10*3.5+6*1.5)


  1. char类型可以保存 int的常量值,但不能保存int的变量值,需要强转
int m = 100;
char c2 = m;//false
char c3 = (char)m;//ture
  1. byte    short    char    类型在进行运算时,当做int类型处理


2.4 基本数据类型和String类型转换


  • 语法:将基本类型的值  +” “

基本类型转String类型

int n1 = 1
float n2 = 1.1f;
double n3 = 3.4;
boolean b1 = true;
String s1 = n1 + "";
String s2 = n2 + "";
String s3 = n3 + "";
String s4 = b1 + "";


  • 语法:通过基本类型的包装类调用parseXX方法

String类型转基本数据类型

String s5 = "123";
int num1 = InterInt.parseInt(s5);
int num2 = InterInt.parseDouble(s5);
int num3 = InterInt.parseFloat(s5);


3 运算符


3.1 算数运算符


  • 算术运算符是对数值类型的变量进行运算的

基本介绍:



3.1.1+号使用


  1. 当左右两边都是数值型时,则做加法运算
  2. 当左右两边有一方为字符串,则做拼接运算
System.out,println(100 + 98): //198
System.out.println("100" + 98);//10098
System.out.println(100 + 3 +"hello");//103hello
System.out.println("hello"+ 100 +3);//hello1003



3.1.2 ++号使用


  • 前++和后++都完全等价子 i=i+1;作为表达式使用前++:++先自增后赋值后++:i++先赋值后自增


3.1.3 %号使用


  • a % b 当a是小数时,公式 = a - (int)a / b * b


3.2 关系运算符


  • 关系运算符的结果都是 boolean 型



3.3 逻辑运算符


  • 用于连接多个条件(多个关系表达式),结果是boolean

基本介绍:



3.3.1  &&和&基本规则


  • 如果第一个条件为 false ,后面的条件不再判断

&& 短路与:

  • 如果第一个条件为 false ,后面的条件仍然判断

& 逻辑与:


3.3.2  ||和|基本规则


  • 如果第一个条件为 true,则第二个条件不会判断,结果为true

|| 短路或:

  • 不管第一个条件是否为true,第二个条件都要判断

|  逻辑或:


3.3.3  ^逻辑异或


  • 当a和b不同时,则结果为true,否则为false


3.4 赋值运算符


  • 赋值运算符就是将某个运算后的值,赋给指定的变量

基本介绍:


注意事项和细节:

  1. 运算顺序从右往左
  2. 赋值运算符的左边只能是变量,右边可以是变量、表达式、常量值
  3. 复合赋值: a  x=  b  等于  a  =  a  x  b
  4. 复合赋值运算符会进行类型转换

byte b = 3;

b += 2;  //等价于 b = (byte)(b + 2)

b++;  //等价于 b = (byte)(b + 1)



3.5 三元运算符

基本语法:

运算规则:

  1. 如果条件表达式为true,运算后的结果是表达式1;
  2. 如果条件表达式为false,运算后的结果是表达式2;

注意事项和细节:

  1. 表达式1和表达式2要为可以赋给接收变量的类型(或可以自动转换)
  2. 三元运算符可以转成 if--else语句

条件表达式?表达式1:表达式2;


int a = 10;
int b = 99;
int result = a>b ? a++:b--;
int c = a > b ? int(1.1) : int(3.4);


3.5 运算符优先级

优先级:

  1. () {} , 等
  2. 单目运算符 ++ --
  3. 算术运算符
  4. 位移运算符
  5. 比较运算符
  6. 逻辑运算符
  7. 三元运算符
  8. 赋值运算符

3.6 标识符的命名规则和规范

规则:

  1. 由26个英文字母大小写,0~9,或$组成
  2. 数字不可开头
  3. 不可以使用关键字和保留宇,但能包含关键字和保留字
  4. Java中严格区分大小写,长度无限制
  5. 标识符不能包含空格

规范:

  1. 包名:多单词组成时所有字母都小写:aaa.bbb.ccc
  2. 类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
  3. 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单河开始每个单词首字母大写:xxxYyyzzz
  4. 常量名:所有字母都大写,多单词时每个单词用下划线连接:XXX_YYY_ZZZ

3.7 关键字、保留字

  • 被Java语言赋子了特殊含义,用做专门用途的字符串(单词)特点:关键字中所有字母都为小写

关键字基本介绍:

  • 现有Java版本尚未使用,但以后版本可能会作为关键字使用。自己命名标识符时要避免使用这些保留宇byValue、cast、future、 generic、 inner、 operator、outer、rest、var、goto、const

保留字基本介绍:

3.8 键盘输入

  • 在编程中,需要接收用户输入的数据,就可以使用键盘输入语句来获取lnput.java,需要一个扫描器(对象),就是 Scanner

基本介绍:

步骤:

  1. 导入该类的包,java.util.*
  2. 创建该类的对象(声明变量)
  3. 调用里面的功能