学习笔记

169 阅读5分钟

java基本概念和语法

语法

与自然语言相似,编程语言也有自己的类似字、词、句的语法

  • 字母-符号
  • 单词-标识符
  • 语句-指令语句
  • 文章-整个程序

学习编程语言就是学习

  1. 编程语言中的字符
  2. 字符组成的词,也就是关键字
  3. 完整程序的程序结构
  4. 利用写好的工具类、工具库

标识符

标识符分为两大类:

  1. 语言内置(关键字)
  2. 开发者自定义

标识符:帮助识别的符号,要遵循一些规则

规则:

  • 软性要求(行业约束)

    • 变量(容器)名字见名知意
    • 驼峰命名(topBox)
    • 蛇形命名(top_box),css里叫BEM命名法
    • 首字母大写 帕斯卡命名法(Java常用)
    • 不应该改变的量或不能改变的量,叫做常量,名字全大写MAIN
    • 方法(函数)取名,从函数名能够知道其功能
  • 硬性要求

    • 不能是关键字、保留字
    • 包含数字、字母、下划线、美元符
    • 数字不可作为开头
    • 严格区分大小写

关键字

关键字:Java语言内置好的,有自己含义的单词,不可修改

注:类名可自定义,首字母大写。主函数main不可自定义

注释

注释分三类

  1. 单行注释(//)
  2. 多行注释(/* */)
  3. 文档注释(/** */)

数据类型

计算机存储单位:

  1. (计算机最小存储单位),只能存储0或1
  2. 字节(8位等于1字节)
  3. KB 1KB=1024字节
  4. MB 1MB=1024KB
  5. GB 1GB=1024MB
  6. TB 1TB=1024GB
单位换算
bit
Byte1Byte=8bit
Kb1KB=1024Byte
Mb1MB=1024KB
Gb1GB=1024MB
Tb1TB=1024GB

数据类型分类:

  • 基本数据类型(Java里有4类8种)

    • 整型
    • 浮点型
    • 字符型,区分字符和字符串,字符是一个字a b c,字符串是ab
    • 布尔型(对错,TRUE或FALSE)
  • 引用数据类型

基本数据类型
整型
类型关键字字节(空间)范围
字节Byte1-2^7-2^7-1
整型int(常用)2-2^15-2^15-1
短整型short4-2^31-2^31-1
长整型long8-2^63-2^63-1

存储字节数并不是越大越好,适合自己的项目去分配合理的空间

浮点型(小数)
类型关键字空间(字节)
单精度浮点数float4
双精度浮点数double(默认)8

因为小数保存在计算机中都是转为二进制,存在除不尽的情况,所以天生存在一些精度问题

字符型

注意:区分字符和字符串

类型关键字空间(字节)
字符char2

键盘上字母、标点,所有按键都在字符编码表上ASCII码(美国标准信息交换码)

重要:A对应数字为65,a对应数字为97

布尔型

布尔型只有一种,取值有两个

类型关键字
布尔型booleantrue(真)
布尔型booleanfalse(假)
引用数据类型

十进制 二进制转换

十进制转二进制: 采用除2取余,逆序排列

二进制转十进制: 将一个二进制数字每一位取出设置位权(从0开始),每位数字乘以2的位权次方,求和得到对应的十进制

变量

有了数据类型就能将各种类型的数据放进到容器(变量),使用声明指令让计算机在内存里开辟一块空间去存数据

变量允许被修改,常量(名字全大写)不可修改

语法:

  //语法:数据类型 变量名称;
  // 第一种写法 先声明   告诉计算机开辟 4个字节的空间 未来会去存放数据
  int number;
  // 再赋值   将数据 3 放进变量number中
  number=3;
  ​
  ​
  //第二种写法 声明后立马赋值
  int number = 3;
  • 声明后赋值称为变量的初始化
  • 赋给变量的值必须跟数据类型匹配
  • 变量未赋值时不允许使用
  • 作用域,变量所能生效的范围

常量

常量分两类:

  1. 字面常量
  2. 符号常量

通过关键字final来定义常量,例:final double PI = 3.14;常量不可被修改

将业务含义带入常量值中,使用时即好识别,又不会改错,未来修改时就可一处改处处变

(之前版本中声明常量立马就要赋值)

运算符

分类:

  1. 算术运算符 +、 -、 *、 /、 取余%(读作模)
  2. 赋值运算符 += -= = * /
  3. 关系比较运算符 >、 <、 >=、 <=、 ==(相等) 、 !=(不等)
  4. 三目运算符(判断)
  5. 逻辑运算符 [与&&||!]

算术运算符

  
  int a = 5;
  int b = 6;
  int sum = a+b;

注意:/除法是得到商,%取余是得到余数

运算过程中可能存在类型提升,整数+小数 会得到小数类型,小数有精度问题

例:

  
  int a = 3;
  double b = 3.14
  double sum = a+b

赋值运算符

+=、- =、=、*、/=

例:

  
  int a = 5;
  int b = 6;
  a += b;  //意思是a=a+b,a+b的和重新赋值给了ai++;  //在i的基础之上 +1i = i+1;同理i--就是在i的基础上 -1i = i-1

区别:i++ 和 ++i

  
  //先使用值后加减,a++是先使用a的值进行加减得到最终结果
  int a = 5;
  int sum = a++ +10;  //sum = a +10;
  System.out.print("sum");//值为15//自身自增后进行加减,++a是先让a自身加1后再进行加减得到最终值
  int a = 5;
  int sum = ++a +10; // sum = a+1 + 10;
  System.out.print("sum");//值为16
  ​
  ​
  //综合运用
  int a = 10;
  int b = a++; // b 先拿到的是当前a=10的值
  System.out.print("a:"  +a); //a自身在增加,11
  System.out.print("a:"  +b);//10int a = 10;
  int b = ++a; //b 先拿到的是a自增1后的值,此时b=a+1=10+1 
  System.out.print("a:"  +a); //11
  System.out.print("a:"  +b); //11

关系(比较)运算符

关系比较运算符 >、 <、 >=、 <=、 ==(相等) 、 !=(不等)

例:5>6 错 得到的是一个bollean类型的结果(TRUE或FALSE)

  
  //数学
  4<5<6
      
  // 不能像数学写连续比较,可以通过一些逻辑运算符做连接  && 读作 并且 
  4<5 && 5<6  //得到的值是boolean类型

三目运算符

语法

  
  表达式1 ? 表达式2 : 表达式3;
  ​
  //例
  int age =  20;
  boolean result = age >18 ? true:false;  //拿age的值与18比较,20>18吗?为真执行表达式2,为假执行表达式3,即把表达式2 或 表达式3 的值赋给result
  System.out.print(result); 

逻辑运算符

&&||!非,&位与|位或

  • &&:同时满足
  • ||:n选
  • !:取反,假的变为真的,真的变为假的
  
  int i = 10,j = 15;
  boolean result =i>20 && (j = 20)>15;
  System.out.print("result:"  +result);
  System.out.print("j:"  +j);

&&存在短路运算符,表达式1&& 表达式2,当表达式为1已经为假时,则不会再判断表达式2,直接整体为假

||也是短路运算符,n选1,选中了一个就不会再去判断后面的表达式,如果为假则全部为假

"一真全真,一假全假" 一真全真:||,一假全假:&&

\