
java学习
java学习笔记
阿呆喜欢吃菜菜
今天也要好好学习鸭
展开
-
java的异常处理
一个健壮的程序必须处理各种各样的错误,所谓错误,就是程序调用某个函数的时候,如果失败了,就表示出错。调用方获知调用失败的信息有两种方法:方法一:约定返回错误码。(不常用)举例:处理一个文件,如果返回0因为使用int类型的错误码,想要处理就非常麻烦。这种方式常见于底层C函数。方法二:异常处理机制。Java内置了一套异常处理机制,总是使用异常来表示错误。是无需捕获的严重错误,Exception是应该捕获的可处理的错误;Java规定:必须捕获的异常,包括Exception及其子类,但不包括。原创 2024-02-28 16:45:02 · 248 阅读 · 1 评论 -
java中的枚举类enum
为了让编辑器能自动检查某个值在枚举的集合中内,并且不同用途的枚举需要不同类型来标记,不能混用,可以用enum来定义枚举类。和int定义的常量相比,使用enum定义枚举有如下好处:首先,enum常量本身带有类型信息,即Weekday.SUN类型是Weekday,编译器会自动检查出类型错误。其次,不可能引用到非枚举的值,因为无法通过编译。最后,不同类型的枚举不能互相比较或者赋值,因为类型不符。原创 2024-02-19 14:19:52 · 245 阅读 · 1 评论 -
Java中的StringBuilder,StringJoiner,String.join()
它是一个可变对象,可以预分配缓冲区,这样,往。,因为Java编译器在编译时就自动把多个连续的。为了能高效拼接字符串,Java标准库提供了。会自动把字符串连接操作优化为数组复制或者。,这样,就可以不断调用自身的其他方法。中新增字符时,不会创建新的临时对象。进行链式操作的关键是,定义的。操作,并不需要我们将其改写为。原创 2024-02-18 21:10:52 · 331 阅读 · 1 评论 -
Java字符串String
在Java中,String是一个引用类型,它本身也是一个类。比较两个字符串是否相同时,实际上是想比较字符串的内容是否相同,必须使用equals()方法而不能用==。,但实际上那只是Java编译器在编译期,会自动把所有相同的字符串当作一个对象放入常量池,自然。的不变性设计可以看出,如果传入的对象有可能改变,我们需要复制而不是直接引用。静态方法,可以传入其他参数,替换占位符,然后生成新的字符串。并没有改变字符串的内容,而是返回了一个新字符串。数组,而是会复制一份,所以,修改外部的。原创 2024-02-03 20:18:39 · 397 阅读 · 1 评论 -
Java内部类(Inner Class,Anonymous Class,Static Nested Class)
Inner Class和普通Class相比,除了能引用Outer实例外,还有一个额外的“特权”,就是可以修改Outer Class的。(1)Inner Class和Anonymous Class本质上是相同的,都必须依附于Outer Class的实例,即隐含地持有。匿名类是定义内部类的另一种方法,它不需要在Outer Class中明确定义这个Class,而是在方法内部通过匿名类定义。字段,因为Inner Class的作用域在Outer Class内部,所以能访问Outer Class的。原创 2024-02-03 16:12:36 · 512 阅读 · 1 评论 -
Java中的四种访问权限
类的成员变量和方法访问权限 public protected default private 同一个类 √ √ √ √ 同一个包 √ √ √ 子父类 √ √ 不同包 √ 这四种权限从大到小为:public>protected>包访问权限>private1.没有任何修饰符的权限就是包访问权限(default),意味着当前包的所有类原创 2024-02-03 15:46:56 · 277 阅读 · 1 评论 -
java中的final关键字
(1)final关键字提高了性能。JVM和Java应用都会缓存final变量。(2)final变量可以安全的在多线程环境下进行共享,而不需要额外的同步开销。(3)使用final关键字,JVM会对方法、变量及类进行优化。final修饰的方法不能被重写,可以被继承和重载。final修饰的变量不能被修改,是个常量。final修饰的类为最终类,不能被继承。原创 2024-01-31 21:15:28 · 122 阅读 · 0 评论 -
java抽象类与接口
抽象方法本质上是定义接口规范,从而保证所有子类都有相同的接口实现,从而使多态发挥出威力。的定义,表示一个接口类型和一组方法签名,而编程接口泛指接口规范,如方法签名,数据格式,网络协议等。接口没有字段,接口的定义方法默认都是public abstract,所以这两个修饰符不需要写出来。如果一个抽象类没有字段,方法全是抽象方法,就可以将该抽象类改写成接口:interface。方法的目的是,当我们需要给接口新增一个方法时,会涉及到修改全部子类。方法,那么子类就不必全部修改,只需要在需要覆写的地方去覆写新增方法。原创 2024-01-30 14:33:01 · 167 阅读 · 1 评论 -
Java中的参数绑定机制
当我们将一个 String[] 类型的变量传递给一个方法时,实际上传递的是该变量所引用的数组对象在内存中的地址。因此,当我们在方法中修改数组中的元素值时,我们是直接在原本的内存上改的,这时候this.name仍然指向这一块内存。,也就是说,一旦创建了一个 String 对象,就无法再修改它的值,任何对 String 对象的修改都会创建一个新的对象。而 String[] 类型的对象是可变的,也就是说,可以修改数组中的元素值。,调用方的变量,和接收方的参数变量,指向的是同一个对象。数组的内容,结果发现,实例。原创 2024-01-25 16:50:02 · 487 阅读 · 1 评论 -
Java中实现冒泡排序
冒泡排序的特点是,每次循环选择前面的一个数,每一轮循环后,最大的一个数被交换到末尾,因此,下一轮循环就可以“刨除”最后的数,每一轮循环都比上一轮循环的结束位置靠前一位。原创 2024-01-25 11:20:38 · 363 阅读 · 0 评论