栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA学习笔记

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA学习笔记

文章目录
  • 一、JAVA概述
    • 1. 基础
    • 2. 转义字符:
    • 3. 注释
    • 4. 常见错误
  • 二、变量
    • 1. +号的使用
    • 2. 数据类型
      • 浮点数使用陷阱:
      • 字符型
    • 3. 数据类型转换
      • a. 自动数据类型转换
      • b. 强制类型转换
  • 三、运算符
    • 1. 算术运算符
    • 2. 关系运算符
    • 3. 逻辑运算符
    • 4. 赋值运算符
    • 5. 三元运算符
    • 6. 运算符优先级
    • 7. 标识符命名规则和规范
    • 8. 进制(很重要的基本功)
    • 9. 反码补码原码
  • 四、控制结构
    • 1. Switch语句
    • 2. for循环
      • for循环的执行顺序

一、JAVA概述 1. 基础

javac = java compiler(java编译器)

JVM(java virtual machine虚拟机)< JRE(java Runtime Environment运行环境)

java Hello.class会报错,因为会认为运行的是java.class这个类,直接java class即可
原始文件.java被称为源文件;javac编译后的文件.class被称为字节码文件

一个源文件只能有一个public类,且这个类名要和文件名一致。其他类的数量不限,编译的时候每个类都会生成一个class文件,其他类里也可以写main函数,只要运行指定类即可

2. 转义字符:
public class ChangeChar{

	public static void main(String[] args){
		// t是制表符  对齐
		System.out.println("上海t北京t成都t深圳");
		// n是换行,光标到下一行
		System.out.println("红楼梦n三国演义n西游记");
		// "'实现双单引号
		System.out.println("我说"这绝不可能",你说:'不一定'");
		// \是单斜杠 \\是双斜杠 一个转移后面一个斜杠
		System.out.println("C:\D:\\E");
		// r是回车,光标回到该行最前面  开始覆盖
		System.out.println("回车是替换掉该行前面的字rHuiC");
	}
}

3. 注释

多行注释里面不能嵌套多行注释

文档注释:

 

@的名词必须是指定的那几个,利用

javadoc -d D:\temp -author -version ChangeChar.java

其中,D:temp是要生成的index网页存放的地址, -author -version是所@的字段,编辑的文件是源文件,而非字节码文件,打开temp下面的index.html文件,可以看到如图:

4. 常见错误
  1. 编译或者运行时,找不到文件 javac Hell0.java, 把文件名或者目录找对
  2. 主类名和文件名不一致 , 修改时保持一致即可
  3. 缺少;
  4. 拼写错误,比如 1 -> l 0->0, void -> viod , 要求写代码时,一定要小心
二、变量 1. +号的使用

2. 数据类型


整型默认int(空间节省4字节),声明long,数字后面必须加L(或l)
因为浮点型尾数部分可能丢失,造成精度损失,所以小数都是近似值
浮点型默认是double型(因为精度更高),声明float型号要加f或F

int a = 10L // 错误,因为大数10L不能放进小int里
double b = 1.1F // 正确,因为小数1.1F可以放进大double里

浮点数使用陷阱:


所以含有运算的浮点数进行判断时应该让两个数的差值的绝对值小于某个精度。
如果是查询到的小数或者是直接赋值,则可以判断相等。

字符型

char 可以直接放数字,但是表示的是数字的ASCII码

char c = 97;

打印出来是a,而不是97
字符类型都需要用单引号引起来,使用了双引号表示的是字符串
char字符本质存的就是字符所对应的Unicode数字,默认输出是字符,也可以进行数据类型转换输出数字

char c = 'a';
System.out.println((int)c);

输出是97

字符加法:
因为字符存的是数字,所以相加是存放的数字相加

如果相加后的数字还是存为char类型,那就默认输出ASCII码,否则就是单纯的数字相加。
双引号的字符串相加才是拼接!

JAVA的布尔类型只能用true和false,不能用数字,这点不同于C

PS:JAVA中字符串不能用==比较是否相等,==比较的是地址,应该用a.equals(b)来判断ab字符串是否相等。

3. 数据类型转换 a. 自动数据类型转换



相互计算,大包容小

不同类型变量在计算的时候会先变成最大的类型,再计算,所以n1+1.1(1.1默认类型是double)的和的数据类型是double,所以定义float类型会出错。只能用大数据类型接收小的
byte直接看数值大小

char,short,byte三个类型不能自动转换,但是可以计算,先统一转化为int类型
即使是byte+byte,结果也是int类型!!!

b. 强制类型转换

大---->小,有数据损失

其他类型强制转字符串,只需要直接+“”即可
字符串类型转其他,需要调用包装类,不能直接(int)转

三、运算符 1. 算术运算符

除法
JAVA没有整除这个专门的语法,除法结果是小数还是整数完全取决于参与运算的数据类型。

double b = 10 / 4 //结果是2.0  10和4产生结果2 2是double类型  所以结果2.0
b = ++a // 先++再赋值
b = a++ // 先赋值再++

面试题

区别在于先赋值还是先++,先赋值会先调用一个临时变量tmp存放原始值,先++则是先+1再调用临时变量

2. 关系运算符

instanceof 是否是某个类的对象

3. 逻辑运算符

和关系运算符一样,结果都是Boolean值
&&短路与:如果第一个条件为 false,则第二个条件不会判断,效率高
& 逻辑与:不管第一个条件是否为 false,第二个条件都要判断,效率低

a^b:ab异或

int x = 5;
if(x++ == 6) // 先比较再++,所以是False
4. 赋值运算符

复合赋值运算符会自动进行类型转换

byte b = 2;
b += 3;// 相当于 b = (byte)(b + 3)
b++; // 相当于 b = (byte)(b + 1)

都不会报错

5. 三元运算符

条件?表达式1:表达式2;
条件为真,返回表达式1(一真大师)

6. 运算符优先级


7. 标识符命名规则和规范

规则:
只能由英文字母,数字,_ 和$这俩特殊字符组成
规范:
1)包名:多单词组成时所有字母都小写:aaa.bbb.ccc //比如 com.hsp.crm
2) 类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz [大驼峰]
比如: TankShotGame
3) 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz [小
驼峰, 简称 驼峰法]
比如: tankShotGame
4) 常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
比如 :定义一个所得税率 TAX_RAT

8. 进制(很重要的基本功)

8进制是0开头;16进制是0x开头

十进制转二进制:

八进制和十六进制转二进制同理
二进制转八进制/十六进制:
从低位开始,将二进制数每三/四位一组,转成对应的八进制/十六进制数即可
八进制和十六进制转二进制反过来即可。

9. 反码补码原码

七八条尤为重要:进行位运算的时候,先都转化为补码进行运算,然后将结果变为原码进行输出!

四、控制结构 1. Switch语句

如果没有break,会直接继续到下一个case的语句,而不判断下一个case的表达式是否满足,直至遇到break或者运行完switch语句,这种现象称为穿透

2. for循环
  1. 循环条件是返回一个布尔值的表达式
  2. for(;循环判断条件;) 中的初始化和变量迭代可以写到其它地方,但是两边的分号不能省略。如果需要调用i,则需要在for循环外面定义i,所以有时候不会把初始化和迭代写在for内
  3. 循环初始值可以有多条初始化语句,但要求类型一样,并且中间用逗号隔开,循环变量迭代也可以有多条变量迭代语句,中间用逗号隔开。
for循环的执行顺序


先初始化,再判断条件,再执行语句,最后再进行变量迭代(自增等)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/931114.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号