首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【读码JDK】-java.lang包介绍

当Java虚拟机检测到正在加载存在循环,抛出 ClassFormatError 当Java虚拟机尝试读取文件并格式化错误或者无法解析文件,抛出 ClassLoader 加载器是一个负责加载对象...按照惯例,实现此接口使用公共方法覆盖Object.clone (保护),此接口不包含clone方法。 因此,仅仅通过实现该接口来克隆对象是不可能。...NoSuchMethodException 无法找到特定方法抛出 NullPointerException 当应用程序以下情况尝试使用null抛出。 这些包括: 调用null对象实例方法。...来自Readable字符通过Readable可供读取方法调用使用 ReflectiveOperationException 反射抛出异常 Runnable 由其他线程执行实现,必须实现一个run...ThreadLocal 提供线程局部变量,每个线程都拥有一个独立副本 Throwable 该类是所有的错误和异常 TypeNotPresentException 当应用程序尝试使用表示类型名称字符串访问类型抛出

1.5K20

Effective-java-读书笔记之类和接口

): 缺省(default)访问级别, 声明该成员包内部任何都可以访问这个成员.保护(protected): 声明该成员子类和包内部任何可以访问这个成员.公有的(public).如果覆盖了一个方法...这样得到将会非常稳固, 它不依赖于现有实现细节.因为每一个实例都把另一个现有实例包装起来了, 所以新被称为包装(wrapper class), 这也正是Decorator模式.只有当子类真正是子类型...使子类更易提供针对子列表快速clear方法.对于为了继承而设计, 唯一测试方法就是编写子类.在为了继承而设计有可能被广泛使用时, 必须要意识到, 对于文档中所说明自用模式, 以及对于其保护方法和域中所隐含实现策略..., 就应该用枚举类型来导出这些常量.使用不可实例化工具来导出这些常量.总结: 接口应该只被用来定义类型, 它们不应该被用来导出常量.第23条 层次优于标签有时候, 可能遇到带有两种甚至更多种风格实例...保存这份引用消耗时间和空间, 并且导致外围实例符合垃圾回收却仍然得以保留.如果嵌套实例可以它外围实例之外独立存在, 这个嵌套就必须是静态成员; 没有外围实例情况下, 要想创建非静态成员实例是不可能

65471
您找到你想要的搜索结果了吗?
是的
没有找到

【计算机本科补全计划】Java学习笔记(四) 修饰符

Javav支持 4 种不同访问权限。 default (即缺省,什么也不写): 同一包可见,不使用任何修饰符。使用对象:、接口、变量、方法。 private : 同一可见。...声明为私有访问类型变量只能通过中公共 getter 方法被外部类访问。Private 访问修饰符使用主要用来隐藏实现细节和保护数据。...6、 保护访问修饰符-protected 被声明为 protected 变量、方法和构造器能被同一个包中任何其他访问,也能够被不同包中子类访问。...静态方法:static 关键字用来声明独立于对象静态方法。静态方法不能使用非静态变量。静态方法从参数列表得到数据,然后计算这些数据。...run() 方法 Runnable 开启线程),一个线程调用 stop() 方法

86690

知识点总结:Java核心技术(卷1)

this用途 1、引用隐式参数; 2、调用该类其他构造器; super用途 1、调用方法; 2、调用构造器; 子类和 子类 子类构造器 使用super...,Java编译器将报告错误 类型转化 只能在继承层次进行类型转化; 转化为子类之前,应该使用instanceof进行检查; 只有使用子类特有方法时候才需要类型转换 一般情况下,应该尽量少用类型转换和...默认方法可以调用任何其他方法 默认方法一个重要用途是“接口演化” 为旧接口添加一个默认方法,这样可以兼容旧代码; 解决默认方法冲突: 1)优先; 如果提供了一个具体方法...x->new int[x] 2.4 内部类 为什么使用部类: 内部类方法可以访问该类定义所有的作用域中数据,包括私有的数据; 内部类可以对同一个包中其他隐藏起来 当想要定义一个回调函数且不想编写大量代码...当对一个线程调用interrupt方法,线程中断状态将被置位 异常 一个被阻塞线程(调用sleep或wait)上调用interrupt方法,阻塞调用将会被Interrupted Exception

32430

效率编程 之「和接口」

如果一个包级私有的顶层(或者接口)只是一个内部被用到,就应该考虑使它成为唯一使用那个私有嵌套。...对于公有成员,当访问级别从包级私有变成保护级别大大增加可访问性。保护成员是导出 API 一部分,必须永远得到支持。保护成员应该尽量少用。...如果方法覆盖了一个方法,子类中访问级别就不允许低于访问级别。实例域决不能是公有的,否则我们就放弃了强制这个域不可变能力。并且,包含公有可变域并不是线程安全。...非静态成员每个实例方法内部,可以调用外围实例上方法,或者利用修饰过this构造获得外围实例引用。...匿名不同于 Java 程序设计语言中其他任何语法单元,它是使用同时被声明和实例化。当且仅当匿名出现在非静态环境中,它才有外围实例。

69530

死磕Java内部类(一篇就够)

为什么需要内部类为什么部类(包括匿名内部类、局部内部类),持有外部类引用? 为什么匿名内部类使用到外部类方法局部变量需要是final类型? 如何创建内部类实例,如何继承内部类?...,大家肯定都用过,但是技术设计之初肯定也是要用来解决某个问题或者某个痛点,那可以想想内部类相对比外部定义有什么优势呢?...内部类能够更好封装,聚,屏蔽细节 我们Jobrun方法中,打印了外部WorkermJobList列表中剩余Job数量,代码这样写没问题,但是细想,内部类是如何拿到外部类成员变量呢?...当然还有一些其他小优点,比如可以用来实现多重继承,可以将逻辑聚在一个方便维护等,这些见仁见智,先不去说它们。 我们接着看第二个问题!!!...方法局部内部类,我这里就不赘述了,原理都是一样,大家可以自行试验。 这样我们算是解答了第二个问题,来看第三个问题。 为什么匿名内部类使用到外部类方法局部变量需要是final类型

92330

Java关键字和相关疑问总结

Java 关键字 类别 关键字 说明 访问控制 private 私有的 protected 保护 public 公共 default 默认 方法和变量修饰符 abstract 声明抽象...Java 支持 4 种不同访问权限。 default (即默认,什么也不写): 同一包可见,不使用任何修饰符。使用对象:、接口、变量、方法。 private : 同一可见。...使用对象:变量、方法。 注意:不能修饰(外部类) public : 对所有可见。使用对象:、接口、变量、方法 protected : 对同一包和所有子类可见。...使用对象:变量、方法。 注意:不能修饰(外部类)。...但是java中都是保留关键字,这些从c来关键字都是保留使用,没有具体含义 Java基本数据类型为什么不包括String String是由基本类型char组成,是一个,它不是基本数据类型。

45830

《Java核心技术 卷I:基础知识》读书笔记

4.5 方法参数 一般来说,存在按值调用和按引用调用。Java总是默认采用按值调用,但是需要注意,=赋值号一般总是直接复制对象地址,除非使用clone 这也就是说,方法得到是所有参数值一个拷贝。...,例如Method m2 = Employee.class.getMethod("raiseSalary",double.class); 5.8 继承设计技巧 将公共操作和域放在 不要使用保护域...使用继承实现"is-a"关系 除非所有继承方法都有意义,否则不要使用继承 覆盖方法,不要改变预期行为 使用多态,而非类型信息 不要过多地使用反射 第6章 接口与内部类 6.1 接口 接口不是...当想要使用一个回调函数而又不想编写过多代码,可以使用匿名内部类。 C++使用是嵌套。嵌套之间关系而并不是对象之间关系。对于一个嵌套,可能并不会实现嵌套。...当run方法退出,线程不会死亡,而是池中准备为下一个请求提供服务。 另一个使用线程池理由:减少并发线程数目。

54720

Java核心知识点整理大全11-笔记

反射机制概念 (运行状态中知道所有的属性和方法 Java 中反射机制是指在运行状态中,对于任意一个都能够知道这个所有的属性和方法; 并且对于任意一个对象,都能够调用任意一个方法;这种动态获取信息以及动态调用对象方...像这种和外部 关系密切,且不依赖外部类实例,都可以使用静态内部类。 5.1.4.2. 成员内部类 定义内部非静态,就是成员内部类。...局部内部类(定义方法) 定义方法,就是局部类。如果一个某个方法使用,则可以考虑使用部类。...同时它也是没有 class 关键字,这是因为匿名内部类是直接使用 new 来生成一个对象 用。...泛型方法() 你可以写一个泛型方法,该方法调用时可以接收不同类型参数。根据传递给泛型方法参数 类型,编译器适当地处理每一个方法调用

9510

java基础第九篇之final和内部类

* * 特点1.一个中 静态代码块是优先于构造方法执行,静态代码块优先于main方法 * 而且只会执行一次,第一次使用到(可能是创建对象,也可能是调用对象静态成员)这个就是执行 ...因为当调用这个方法,局部变量如果没有用final修饰,他生命周期和方法生命周期是一样,当方法弹栈,这个局部变量也消失,那么如果局部内部类对象还没有马上消失 想用这个局部变量,就没有了,如果用final....private修饰 只能在本包中本类中可以使用 protected(保护) default(默认) 共同点:这两个修饰成员只能在本包中使用 不同点:protected修饰成员,不同包子类中也可以使用...内部类: 一个内部 再定义第二个,那么第二个称为内部类一个称为外部类 根据内部类定义位置不同 那么可以分成: 局部内部类:定义方法里面,开发从来不用....为什么构造方法不能被继承? 可以这样理解构造器,构造器就是用来创造对象诞生。说形象就是,你爸和你妈有一个构造器,才会造成你出现。你爷和你奶也有个构造器,才会造成你爸出现 。

42810

【c++】和对象(七)

、private 访问限定符限制 2.友元 友元(Friend)C++中是一个重要概念,它允许某些特定外部函数或访问另一个私有(private)或保护(protected)成员 2.1...因为cout输出流对象和隐含this指针抢占第一个参数位置。this指针默认是第一个参数也就是左操作数了。但是实际使用中cout需要是第一个形参对象,才能正常使用。...C是B友元, B是A友元,则不能说明CA友元 友元关系不能继承 3.内部类 如果一个定义一个内部,这个内部类就叫做内部类。...,但又不想为这个临时使用对象创建一个具体变量名,这样使用就很方便 5.拷贝对象一些编译器优化 传参和传返回值过程中,一般编译器会做一些优化,减少对象拷贝 class A { public...,原因如下: 当你C++中使用const A& aa2 = 2;这行代码,其实发生了一系列复杂操作,它们体现了C++对于效率和对象生命周期管理考量。

6420

Java内部类详解

一.内部类基础   Java中,可以将一个定义一个里面或者一个方法里面,这样称为内部类。广泛意义上部类一般来说包括这四种:成员内部类、局部内部类、匿名内部类和静态内部类。...2.局部内部类   局部内部类是定义一个方法或者一个作用域里面的,它和成员内部类区别在于局部内部类访问仅限于方法或者该作用域。...代码中需要给按钮设置监听器对象,使用匿名内部类能够实现父或者接口中方法情况下同时产生一个相应对象,但是前提是这个父或者接口必须先存在才能这样使用。...另外,静态内部类是不持有指向外部类对象引用,这个读者可以自己尝试反编译class文件看一下就知道了,是没有Outter this&0。  ...三.内部类使用场景和好处   为什么Java中需要内部类

42710

彻底攻克ThreadLocal:搞懂原理、实战应用,深挖源码!扩展InheritableThreadLocal、FastThreadLocal!

一、为什么使用ThreadLocal 并发编程中,多个线程同时访问和修改共享变量是一个常见场景。这种情况下,可能会出现线程安全问题,即多个线程对共享变量操作可能相互干扰,导致数据不一致。...public void remove():删除当前线程对应变量。 protected T initialValue():这是一个保护方法,用于设置变量初始值。...线程上下文传递:有时需要在同一个线程不同方法之间传递一些上下文信息,而不希望使用全局变量或参数传递。这时可以使用 ThreadLocal。...initialValue() protected T initialValue() { return null; } initialValue() 方法是 ThreadLocal 一个保护方法...使用线程池尤其重要,因为线程可能会被重用,而它们ThreadLocalMap也随之保留。 面试题6:为什么ThreadLocalkey要用弱引用?

82401

【2022最新Java面试宝典】—— Java基础知识面试题(91道含答案)

调用子类构造方法之前调用没有参数构造方法,其目的是? 45. 一个构造方法作用是什么?若一个没有声明构造方法,改程序能正确执行吗?为什么? 46. 构造方法有哪些特性? 47....静态方法和实例方法有何不同? 50. 一个静态方法调用一个非静态成员为什么是非法? 51. 什么是方法返回值?返回值作用是什么? 内部类 52. 什么是内部类? 53....访问修饰符 public,private,protected,以及不写(默认)区别 定义:Java中,可以使用访问修饰符来保护、变量、方法和构造方法访问。...对于Java而言,它多态实现机制遵循一个原则:当对象引用变量引用子类对象,被引用对象类型而不是引用变量类型决定了调用成员方法,但是这个被调用方法必须是中定义过,也就是说被子类覆盖方法...解决办法是里加上一个不做事且没有参数构造方 法。 44. 调用子类构造方法之前调用没有参数构造方法,其目的是? 帮助子类做初始化工作。 45. 一个构造方法作用是什么?

54430

JAVA安全编码标准学习分享

一个参数化数个类型要访问一个对象,而这个对象又不是参数化数据类型产生堆污染,未经检查警告错误时排查较困难 5、不可变为可变实例(成员)提供复制功能,避免传递给非信代码修改原来实例,...,避免子类覆盖后访问权限过大 4、确保构造函数不会调用可覆写方法,避免子类发起基创建调用了子类方法得到一个未初始化值 5、不要在clone()中调用可覆写方法 6、定义了equals(...,JVM可能不会去调用孤立对象析构函数,尝试析构函数中更新状态失败也不会有警告 七、异常行为 1、不要消除或勿略可检查异常 2、不能允许异常泄漏敏感信息 3、记录日记时应避免异常 4、方法失败恢复对象先前状态...thirs 2.2 、从可变一个非私有的方法返回this 2.3、将this作为参数传递给一个创建对象构造函数中调用外部方法 2.4、使用维护指向外部对象this引用一个副本...,包含在外部类字段也会被序列化 7、反序列化时,必须在readObject()方法中对私有的可变组件进行防御性复制 8、不要对实现定义不可变因素使用默认序列化格式,反序列创建一个实例但是不会调用构造函数

4.5K10

第五章:面向对象编程

@Override注解是JDK5入,用来标注方法,被标注方法必须是重写父方法,如果不是重写方法,编译器会报错。 @Override注解只在编译阶段有用,和运行期无关。...向上转型和向下转型 多态向上转型 : 编译看左边 ,运行看右边 其中多态向上转型中使用对象去调用方法只能调用子类从父那里继承方法或者重写方法 ,而不能调用子类自己特有的方法。...protected:保护,子类中可以访问。(保护通常就是给子孙用。) public:公共,在任何位置都可以访问。 ‍...另一是:普通接口。 内部类 什么是内部类? 定义一个。 什么时候使用部类?...局部内部类:和局部变量一个级别 局部内部类方外外部局部变量,局部变量需要被final修饰。 从JDK8开始,不需要手动添加final了,但JVM自动添加。

8511

大数据利器--Scala语言学习(基础)

1) lazy 不能修饰 var 类型变量 2) 不但是调用函数,加了 lazy ,导致函数执行被推迟,我们声明一个变量,如果给声明了 lazy ,那么变量值得分配也推迟。...将 Scala 字段加@BeanProperty ,这样自动生成规范 setXxx/getXxx 方法。这时可以使用 对象.setXxx() 和 对象.getXxx() 来调用属性。...4) protected 为保护权限,scala 中保护权限比 Java 中更严格 , 只能子类访问,问同包无法访问 (编译器从语法层面控制)。...明确规定, 重写一个非抽象方法需要用 override 修饰符,调用方法使用 super 关键字 scala def main(args: Array[String]): Unit = {...如果已经执行过,就不再执行 5) 第二个特质构造器 6) …….重复 4,5 步骤(如果有第 3 个,第 4 个特质) 第 2 种特质构造顺序(构建对象,动态混入特质) 1) 调用当前构造

99610

Java 反射

反射 JAVA反射机制是在运行状态中,对于任意一个,都能够知道这个所有属性和方法;对于任意一个对象,都能够调用任意方法和属性;这种动态获取信息以及动态调用对象方法功能称为java语言反射机制...了解反射机制之前我们首先了解一下Java加载过程 加载 加载是将.class文件中二进制数据读入到内存中,将其放在运行时数据区方法区内,然后堆区创建一个java.lang.Class对象...,用来封装方法区内数据结构。...public成员变量和方法,将包含从中继承到成员变量和方法;而通过方法getDeclaredFields()和getDeclaredMethods()只能获得本类中定义所有成员变量和方法...getClass方法(知道对象用) ② Class c2 = Student.class;//实际告诉我们任何一个都有一个隐含静态成员变量class(知道用) ③Class c3 = Class.forName

78720

JAVA基础语法——标识符、修饰符、关键字(个人整理总结)

default (即缺省,什么也不写): 同一包可见,不使用任何修饰符。使用对象:、接口、变量、方法。 private : 同一可见。使用对象:变量、方法。 ...注意:不能修饰(外部类)。 ? 3.2.1  默认访问修饰符-不使用任何关键字          使用默认访问修饰符声明变量和方法,对同一个是可见。...声明为私有访问类型变量只能通过中公共 getter 方法被外部类访问。 Private 访问修饰符使用主要用来隐藏实现细节和保护数据。...3.2.4  保护访问修饰符-protected protected 需要从以下两个点来分析说明: 子类与基同一包中:被声明为 protected 变量、方法和构造器能被同一个包中任何其他访问...静态方法: static 关键字用来声明独立于对象静态方法。静态方法不能使用非静态变量。静态方法从参数列表得到数据,然后计算这些数据。

1.9K40

Java知识面试题复习(二)Java基础语法

访问修饰符 访问修饰符 public,private,protected,以及不写(默认)区别 定义:Java中,可以使用访问修饰符来保护、变量、方法和构造方法访问。...注意:不能修饰(外部类) default (即缺省,什么也不写,不使用任何关键字): 同一包可见,不使用任何修饰符。使用对象:、接口、变量、方法。...protected : 对同一包和所有子类可见。使用对象:变量、方法。 注意:不能修饰(外部类)。 public : 对所有可见。...以致于即使没有创建对象,也能使用属性和调用方法! static关键字还有一个比较关键作用就是 用来形成静态代码块以优化程序性能。static块可以置于任何地方,中可以有多个static块。...初次被加载时候,按照static块顺序来执行每个static块,并且只会执行一次。 为什么说static块可以用来优化程序性能,是因为它特性:只会在加载时候执行一次。

30320
领券