【详细+超基础】Java-学习笔记 03

简介: 【详细+超基础】Java-学习笔记 03

二、Java 语言基础


标识符概述


Java中的标识符用来标记包、类、接口、对象、方法、变量等名称的字符序列。

标识符是以字母、下划线(__)、美元符号开头、后面可以跟随任意字母、数字、下划线、美元符号。


标识符注意


Java中的标识符不能以数字开头、对大小写敏感、标识符与关键字不能相同。

命名规则

1、类名、接口名的命名:单词的首字母大写,其他字母小写。

2、变量、方法的命名:第一个单词全小写,从第二个单词开始,单词的首字母大写,其余都小写。

3、常量的命名:每个单词都大写,单词之间用“__”连接。

4、包名的命名:包名的所有字母都小写。

关键字

Java中的关键字是有特定含义的,为编译器所保留的,不能作为标识符使用,且所有的关键字都是小写的。

用于数据处理的关键字:byte short int long float  double char boolean

用于流程控制语句的关键字:if else switch case default  while for break continue

方法、类型、变量的修饰的关键字:private public protected final static abstract  synchronized

异常处理的关键字:try catch finally throw throws

对象相关的关键字:new extends implements  class  this  super instance of(用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上)

方法相关的关键字:return void

包相关的关键字:package import

其他关键字: true false null


分隔符及注释


分隔符: ;   {}   ()    .  
 注释: 
     // 单行注释
     /*
    多行注释    
     */
     /**
      文档注释
     */


变量


变量作为程序中最基本的存储单元,要素包括:变量类型,变量名,作用域

声明变量:


局部变量(local variable)


方法或语句内部定义的变量,必须先声明后赋值。

成员变量(member variable)

方法外部、类的内部定义的变量,成员变量会自动初始化

静态变量(static variable)

使用static定义,从属于类

变量和常量命名规范

  • 所有变量、方法、类名:见名知意
  • 类成员变量:首字母小写和驼峰原则:monthSalary
  • 局部变量:首字母大写和驼峰原则
  • 常量:大写字母和下划线:MAX_VALUE
  • 类名:首字母大写,驼峰原则
  • 方法名:首字母小写和驼峰原则:run(),runRun()


数据类型:


Java中的数据类型分为两类:基本数据类型与引用数据类型


image.png


byte:1个字节 short:2个字节

int:4个字节 long:8个字节

float:4个字节 double:8个字节

char:2个字节 boolean:1位

引用数据类型:4个字节,用来代表对象的地址


整型变量/常量


image.png


十进制整数,如:99,-500,0

八进制整数,要求以0开头,如:015

十六进制数,要求 0x 或 0X 开头,如:0x15

二进制数,要求 0b 或 0B开头 如:0h01110011


浮点型变量/常量


image.png

十进制数形式,如:3.14  314.0   0.314

科学计数法形式,如314e2    314E2   314E-2     (e2 = 10^2    E-2 = 10^(-2))

**注意:**浮点型变量不精确不能用于比较,如果要用于比较需要用到java.math包下的连个有用的类BigInteger和BigDecimal


字符型变量/常量


在内存中占2个字节,用Unicode编码表

Unicode具有从0到65535之间的编码,他们通常从’\u000’ 到 ‘\uFFF’ 之间的十六进制值来表示(前缀u表示Unicode)


转义字符


image.png

boolean类型变量


在内存中占一位(不是一个字节)不可以使用0或非0的整数来代替true和false,这点和C语言不同。boolean类型用来判断逻辑条件,一般用于程序流程控制


各类型数据间的相互转换


1.自动类型转换


自动类型转换是指从低级到高级由编译器自动完成的类型转换,规则如下


  • byte short  int  long  float double
  • char int  long float double
byte  b=4;
int x=b;


2.强制类型转换


强制类型转换是强制编译器进行类型转换形式,格式为: (类型)变量名

double  money=76.69;
int   balance=(int) money;


运算符


运算符分类


image.png


算数运算符


二元运算符的运算规则:


整数运算


  • 如果两个操作数有一个为Long,则结果也为Long
  • 没有Long时,结果为int。即使操作数全为short,byte,结果也是int


浮点运算


  • 如果两个操作有一个为double,结果为double。
  • 只有两个操作数都是float,则结果才为float。


取模运算


其操作可以为浮点数,一般为整数,结果是“余数”,“余数”符号和左边操作相同。

如:7 % 3 = 1    -7 % 3 = -1      7 % -3 = 1

算数运算符中++,- -属于一元运算符,该类运算符只需要一个操作数


赋值及其扩展赋值运算符


image.png


关系运算符


image.png

逻辑运算符


image.png


位运算符


image.png


字符串连接符


image.png


条件运算符


X ? Y : Z

运算符优先级的问题


image.png


逻辑与、逻辑或、逻辑非的优先级一定要熟悉!(逻辑非>逻辑与>逻辑或)。

如:a||b&&c的运算结果是:a||(b&&c),而不是(a||b)&&c


符号运算之 a++   ++a


注意:


a++     ++a

a++和++a 都属于自增运算符,区别是对变量a的值进行自增的时间不同。

a++是先进行取值,后进行自增。

++a是先进行自增,后进行取值。

例如:假设 x=3,y=4;

(1) (x++)+(++x)=8

解释:

对于第一个(x++),因为x++是先取值后自增,所以(x++)所取得值为3,然后x进行自增,此时x=4;

对于第二个(++x),因为++x是先自增后取值,所以(++x)所取得值为5,此时x=5,所以结果为8。

(2) (x++)/3+(--y)*2-(x--)%6+(y++)*3-(y--)

1+6-4+9-4=8

解释:

首先(x++)取值为3,然后x=4;然后(--y)取值为3,此时y=3;然后(x--)取值为4,然后x=3;然后(y++)取3,然后后y=4;最后(y--)取4,然后y=3;

注意:()可以提高算数优先级,所以先算括号里面的表达式,但是x++的取值为x,然后x在自增。

重点: ++ 运算优先级很高

面试题:

int  i = 10
i  =  i++ ;

此时,i的值是多少?

答: 输入 i 的值为 10

解析:

首先 i++ 的取值结果为10, 然后 i 进行自增,此时 i=11 ,最后 进行赋值 ,所以 最后输出 i的值 为 10.


相关文章
|
1天前
|
Java 编译器 开发工具
Java基础学习笔记——idea篇
JDK由JRE(包含JVM和核心类库)和开发工具箱(如javac编译器和java运行工具)组成。Java项目结构包括Project、Module、Package和Class。IDEA快捷键包括:生成main方法(main psvm)、复制代码(Ctrl+D)、删除代码(Ctrl+Y/X)、格式化代码(Ctrl+Alt+L)、重命名(Shift+F6)等。
17 0
|
1天前
|
监控 负载均衡 Dubbo
|
1天前
|
前端开发 Java 数据安全/隐私保护
Java学习—GUI编程学习笔记
Java学习—GUI编程学习笔记
|
1天前
|
存储 Java
最新Java基础系列课程--Day10-IO流文件处理(一)
最新Java基础系列课程--Day10-IO流文件处理
|
1天前
|
存储 缓存 安全
《java核心技术36讲》学习笔记-------杨晓峰(极客时间)
《java核心技术36讲》学习笔记-------杨晓峰(极客时间)
62 0
|
1天前
|
搜索推荐 Java
Java基础(快速排序算法)
Java基础(快速排序算法)
25 4
|
1天前
|
存储 前端开发 Java
java学习笔记
java学习笔记
63 0
|
1天前
|
缓存 分布式计算 Java
Java基础深化和提高-------IO流
Java基础深化和提高-------IO流
111 0
|
1天前
|
XML Java 数据格式
Spring5学习笔记——狂神说Java
Spring5学习笔记——狂神说Java
|
1天前
|
缓存 Java Apache
最新Java基础系列课程--Day10-IO流文件处理(三)
最新Java基础系列课程--Day10-IO流文件处理