当前位置: 首页 > news >正文

Javase 笔记(自用)

  1. Java是一种面向对象(opp)的、解释性的跨平台语言。所谓的跨平台是Java的一个编译好的.class文件可以在多个系统下运行。解释性则是编译后的代码需要解释器来执行,与之相对应的c/c++是编译性语言,编译后的代码可以直接被机器执行。

jdk=jre+java的开发工具

jre(jave runtime environment)=jvm+java的核心类库[类],包括java虚拟机和Java所需要的核心类库等。

入门helloworld
public class Main {//Main是一个public类型的类public static void main(String[] args) {//表示一个主方法,是程序的入口System.out.println("Hello world!");//输出}
}

java开发细节
  • java源文件以.java为扩展名。源文件的基本组成部分是class
  • 应用程序的执行入口是main()方法,固定的书写格式如下:
public static void main(String[] args){...}
  • java区分大小写
  • java方法由一条条语句构成,每个语句以";"结尾.
  • 大括号成对出现
  • 一个源文件最多只有一个public类,其他的类不限制。也可以将main方法写在非public类,然后指定运行非public类,这样的入口方法就是非public的main方法。
  • 如果源文件包含一个public类,则文件必须以该类的名字来命名
java转义字符
  1.  \t:一个制表位,实现对齐功能
  2. \n:换行符
  3. \\:一个\
  4. \":一个"
  5. \':'
  6. \r:一个回车   
public class Main{public static void main(String[]args){System.out.println("我推\r天下第一\r");//\t:一个制表位,实现对齐功能System.out.println("\"我推\n天下第一\"");System.out.println("陆沉:”冥王星也会许愿\n走向卡戎的身边”");System.out.println("1、曼陀罗花开\r下国际象棋\r二人的一切可能\r");System.out.println("2、\'曼陀罗花开\'\t\'下国际象棋\'\t\'二人的一切可能\'");}
}

运行结果:

java注释(comment)
  • 单行注释://
  • 多行注释:CTRL+/    或者   /*注释的内容*/
  • 文档注释:可以自动地生成文档,这种注释以 /** 开始,以 */ 结束。文档标注,用于标注作者、创建时间、参阅类等信息,还有泛型信息。(/* + enter调用模板,参考:https://blog.csdn.net/Firelearn/article/details/111992059?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522c7451cddf1002c158087deb2cf46664c%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=c7451cddf1002c158087deb2cf46664c&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-111992059-null-null.142^v101^control&utm_term=idea%20javadoc%E6%B3%A8%E9%87%8A%E6%A8%A1%E6%9D%BF&spm=1018.2226.3001.4187

java代码规范
  1. 类、方法的注释用javadoc来书写
  2. 非javadoc的注释给代码的维护者看,告诉读者为什么这么写,如何修改,注意什么问题
  3. 选中+tab整体右移动,shift+tab整体左移
  4. 运算符和=两边习惯性各加一个空格,比较美观
  5. 源文件使用utf-8编码
  6. 行宽度不要超过八十个字符
  7. 行尾风格
常用dos命令
  • 查看当前目录有什么 dir
  • 切换地址 cd 地址
  • 切换到上一级 cd ..
  • 切换到根目录 cd \
  • 查看子集目录 tree
  • 清屏 cls
  • 退出dos exit
Java变量

变量是程序的基本组成单位。变量相当于内存中的一个数据的存储空间。

变量三基本要素:类型、名称、值

注意事项:

  • 先定义后使用。
  • 该区域的数值可以在同一类型范围内不断变化
  • 变量在同一作用域内不能重名(报错案例如下)
public class Main{public static void main(String[] args){int a=1;System.out.println(a);int a=2;System.out.println(a);}
}

加号的使用:

  • 左右两边都是数值,做加法运算
  • 两边有一方为字符串,拼接运算
Java数据类型

每一种数据都定义了明确的数据类型,在内存中分配了不同大小的内存空间(字节)

Java数据类型分为两大类:基本数据类型、引用数据类型。基本数据类型有八种:byte、short、int、float、double、char、boolean。引用数据类型:类、接口、数组。(String不是基本数据类型,而是属于引用数据类型中的class)

Java整数类型
整型的类型
类型占用存储空间范围
byte1字节-128~127
short2字节

-(2^{15})~2^{15}-1

-32768~32767

int4字节

-(2^{31})~2^{31}-1

-2147483648~2147483647

long8字节-2^{63}~2^{63}-1

整数类型的使用细节

  • Java个整数类型有固定的范围和字段长度,不受具体的os(操作系统)的影响,保证了Java的可移植性。
  • Java的整型常量默认为int,声明long型常量需要后加'l'或者'L'
        int a=1;long b=2l;
  • Java程序中的变量常声明为int,除非不足以表示大数,才使用long
  • bit:计算机中最小的存储单位。byte:计算机的基本存储单元,1byte=8bit
Java浮点数

Java的浮点类型可以表示一个小数

浮点型的分类
类型占用存储空间范围
float4字节-3.403E38~3.403E38
double8字节-1.798E308~1.798E308

浮点数在机器中的存放形式,浮点数=符号位+指数位+尾数位

尾数部分可能丢失,造成精度损失(小数都是近似值)

浮点类型的使用细节

  • Java的浮点类型也有固定的范围和字段长度,不受具体的os影响
  • Java的浮点类型默认是double,声明float,后面要加'F'或'f'
  • 浮点型常量有两种表现形式:
  1. 十进制数形式:2.12         512.0f         .512
  2. double b=.2;//等价于0.2
  3. 科学计数法形式:5.12e2        5.12E-2
  • 通常情况下,应使用double,因为比float精确
  • 浮点数的使用陷阱: 2.7 和 8.1/3。对于运算结果是小数的进行相等判断要小心,应该以两个数的差值的绝对值,在某个精度范围类判断。
public class Main{public static void main(String[] args){double a = 2.7;//2.7double b = 8.1/3;//2.6999999999999997if(Math.abs(a - b)<0.00000000001){System.out.println("相等");}}
}
JavaAPI文档

参考:在线API手册 - 码工具可以在线查看java,python,c语言,c++,php等,各类编程语言的中文api和编程文档https://www.matools.com/api

Java类的组织形式:

  • jdk里包含很多包,每个包里有接口、类、异常。类又由字段、构造器(构造方法)、成员方法(方法)构成。

 举例说明如何使用ArrayList类有哪些方法:

  1. 包->类->找方法
  2. 直接索引
Java字符型(char)

字符类型可以表示单个字符,字符类型是char,char是两个字节(可以存放汉字)多个字字符用String。

public class Main{public static void main(String[] args){char a = '你';//char b = 'ni';//两个字符会报错char b = '\t';char c = 9887;//字符类型可以存储数字int d = c;char e = 'a' + 1;System.out.println(a);System.out.println(b);System.out.println(c);System.out.println(d);System.out.println((int)e);System.out.println(e);}
}

运行结果:

字符类型使用细节:

  1. 字符常量是用单引号括起来的单个字符。(双引号表示的是字符串)
  2. Java中允许使用转义字符'\'将其后来的字符转变为特殊字符型常量。
  3. 在Java中char的本质是一个整数,在输出时,是unicode码对应的字符。
  4. 可以给char赋值一个整数,然后输出时会按照对应的unicode字符输出该数字。
  5. char类型是可以进行位运算,相当于1个整数,因为有对应的unicode。

字符型本质

字符型存储到计算机,需要将字符对应的码值(整数)找出来。比如:

  • 存储:'a'==>87==>二进制==>存储
  • 读取:二进制==>97==>'a'==>显示

字符和码值的对应关系是通过字符编码表决定的(规定好的)

  1. ASCII:一个字节表示,一共128个字符。缺点是不能表示所有字符。
  2. Unicode:固定大小的编码,使用两个字节来表示字符,字母和汉字都是两个字节。最多65536个字符,包含了世界上所有的符号,但是对存储空间造成浪费。
  3. utf-8:大小可变的编码,字母使用一个字节,汉字3个字节。是在互联网上使用的最广的一种unicode的实现方式。它可以使用1-6个字节表示一个符号,根据不同的符号而变化自己而长度。使用大小可变的编码字母占一个字节,汉字占三个字节。
  4. gbk:可以表示汉字,范围广,字母一个字节,汉字两个字节
  5. gb2312:可以表示汉字,gb2312<gbk
  6. big5:繁体中文
布尔类型boolean

基本介绍

  1. 布尔类型只有两种取值true和false,无null
  2. 布尔类型占一个字节
  3. 布尔类型适用于逻辑运算

使用细节:

  • 不可以0或非0的证书来代替输出的结果(和c不一样)
Java基本数据类型转换
自动类型转换

当Java程序进行复制或者运算时,精度小的类型自动转换为精度大的数据类型,这个就是自动类型转化。

数据类型安静赌大小排序为:

  • char->int->long->float->double
  • byte ->short->int->long->float->double

自动类型转换细节:

  1. 有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后进行计算。
  2. 当我们把精度大的数据类型赋值给容量小的数据类型时,会报错,法案指责会进行自动数据类型转换。
  3. (byte,short)和char之间不会相互自动转换。
            byte a = 1;char c = a;//a是byte类型,char和byte不能相互转化,所以会报错

  4. byte,short,char 他们三者可以计算,在计算时会自动转换为int类型。就算是两个byte类型相加,也会自动转化成int类型。 
            byte a = 1;short b = 2;byte c = a + b;//a+b是int类型,所以会报错

  5. boolean不参与转换。
  6. 自动提升原则:表达式结果的类型自动提升为 操作数中最大类型。
强制类型转换

自动类型转换的逆过程,使用强制转换符(),有精度降低或溢出的数据损失的风险。

public class Main{public static void main(String[] args){float a = 1.9f;int b=(int)a;System.out.println(b);}
}

运行结果是1,损失掉了0.9。

public class Main{public static void main(String[] args){int a = 2000;byte b=(byte)a;System.out.println(b);}
}

运行结果-48,有数据的溢出。

强制类型转换的细节:

  1. 强转置操作符只针对最近的操作数,往往采用小括号来提升优先级
    int a = (int)10*3.5+20*3;//结果是double,故会报错
    int b = (int)(10*3.5)+20*3;//用小括号改变优先级,不报错了
  2. char类型可以保存int常量值,但不能保存int的变量值,需要强行转置。
            char a = 1;int b = 2;//char c = b;//不对,b是变量char d = (char)b;//进行强行转置则不会报错System.out.println((int)d);
  3. byte和short和char类型在进行运算时,当作int类型来处理。
String和基本类型转换
  • 基本类型转String语法:将基本类型的值+“”;
    public class Main{public static void main(String[] args){char a = 'n';char b = 'e';String d = "va"+ a + "";String c =b +""+ d;System.out.println(c);System.out.println(b + "" + "va" + a + "");}
    }

  • String转基本类型语法:通过基本类型的包装类调用parsexx方法即可;
String s1 = "20210122";
int n1 = Integer.parseInt(s1);//Integer整数,parse做语法分析。将其转换为int类型
double b1 = Double.parseDouble(s1);
float f1 = Float.parseFloat(s1);
long l1 = Long.parseLong(s1);
boolen bb = Boolen.parseBoolean("true");
byte l1 = Byte.parseByte(s1);
short l1 = Short.parseShort(s1);
  • 字符串转成字符:s1=charArt(0);//结果是2

转换的注意事项:

在将String转成基本数据类型的时候,要确保String类型能够转成有效的数据,比如“123”可以转成一个整数,但是“hello”不可以。

如果格式不正确就会抛出异常,程序会终止,这个问题在异常处理章节中会处理。

Java运算符

算术运算符

关系运算符

逻辑运算符

赋值运算符

三元运算符

运算符优先级

标识符

Java进制转换

Java位运算


http://www.mrgr.cn/news/92410.html

相关文章:

  • uniapp h5支付宝支付
  • C++学习之C概述、数据类型、进制转换与数据存储
  • 性能测试项目实战
  • MFC笔记:本专栏课件
  • WIn32 笔记:本专栏课件
  • Rust 驱动的 Python 工具革命:Ruff 和 uv 与传统工具的对比分
  • deepseek 学习资料整理
  • 从零开始用react + tailwindcs + express + mongodb实现一个聊天程序(三) 实现注册 登录接口
  • python面向对象
  • linux--多进程开发(5)--进程
  • ROFORMER: ENHANCED TRANSFORMER WITH ROTARY POSITION EMBEDDING
  • github 推送的常见问题以及解决
  • IP----访问服务器流程
  • 【蓝桥杯单片机】第十三届省赛第二场
  • Git常见命令--助力开发
  • 【笔记】redis回忆录(未完 重头过一遍)
  • C++ | 面向对象 | 类
  • C# 根据Ollama+DeepSeekR1开发本地AI辅助办公助手
  • leetcode_动态规划/递归 509. 斐波那契数
  • 计算机三级网络技术备考