Java | 牛客网刷题 & 零散知识点汇总(ing)

简介: 牛客网刷题 & 零散知识点汇总(ing)

线程

1.【使用层级】
volatile仅能使用在变量级别;
synchronized则可以使用在变量、方法、和类级别
2.【可见性与原子性】
volatile仅能实现变量的修改可见性,并不能保证原子性
synchronized则可以保证变量的修改可见性原子性
(因为synchronized有锁机制!)
3.【阻塞】
volatile不会造成线程的阻塞
synchronized可能会造成线程的阻塞
(还是因为synchronized有锁机制!)
4.【优化】
volatile标记的变量不会被编译器优化;
但是volatile可以禁止重排序;
synchronized标记的变量可以被编译器优化
^^^^^^^^^^^^^^^^^^^^
^^其他参考文章
^^《Java多线程编程-(13)-从volatile和synchronized的底层实现原理看Java虚拟机对锁优化所做的努力》
^^《既然synchronized是"万能"的,为什么还需要volatile呢?》
^^Android(Java) | 如何使程序实现线程安全(拓展关键词:ThreadLocal、重排序、volatile/final)**



IO



权限

  • main 方法是 Java Application 程序执行的入口点,以下描述哪项是合法的()。



继承、重载

  • C++可以多重继承,但是Java中对于类而言,只有单继承,接口可以多继承。
  • Java不能重载运算符,C++可以。



接口与抽象类的区别

**1 .【实现】
抽象类要被子类继承,接口要被类实现;

2 .【方法】
接口只能做方法声明,
声明的方法默认为公共抽象的;
抽象类中可以作方法声明,
也可以做具体的方法实现。

3 .【变量】
接口里定义的变量只能是公共的静态的不可变常量
抽象类中的变量还可以是普通变量
【同:两者都能有静态抽象内部类!!!】
【不过接口可以通过定义静态抽象内部类
从而间接取用抽象类的所有特性,如实现具体的方法等;
demo 如AIDL生成的接口中的 Stub类

4 .抽象类和接口都是用来抽象具体对象的,但是接口的抽象级别最高。
5 .接口是设计的结果,抽象类是重构的结果。
6 .抽象类主要用来抽象类别【抽象属性+行为】,
接口主要用来抽象功能【抽象行为】。**



题目


**A.vector是线程安全的ArrayList,在内存中占用连续的空间。
初始时有一个初始大小,
当数据条数大于这个初始大小后会重写分配一个更大的连续空间。
如果Vector定义为保存Object则可以存放任意类型,
无需事先知道!!!

B.选项说的情况就是我们自定义异常的情况,
我们可以用违例(Exception)来抛出一些并非错误的消息,
可以,并非错误的消息。
比如我自定义一个异常,若一个变量大于10就抛出一个异常,
这样就对应了B选项说的情况,
我用抛出异常说明这个变量大于10,
而不是用一个函数体(函数体内判断是否大于10,然后返回true或false)判断,
因为函数调用入栈出栈
在寄存器之下速度最快,且占的空间少
自定义异常是存在中,肯定异常内存开销大

C选项是错误的,因为接口中不能声明变量,只有常量!
接口中只有常量定义,没有变量声明。
接口中方法默认是abstract public,
所以在接口只写函数声明是符合语法规则。
但是变量默认是用public final static 修饰的,
意思它是静态常量,不是变量!
另外,
常量不管在接口中还是类中必须在声明时初始化。

D.子类可以访问父类受保护的成员
访问修饰符 访问范围 继承性
private 本类内部 不可继承 私有的
(default) 本类+同包 同包子类可以继承 默认的
protected 本类+同包+子类 可以继承 受保护的
public 公开 可以继承 公开的**








参考

  • 慕课网
  • 极客时间
相关文章
|
10月前
|
存储 缓存 安全
Java基础 - 知识点
Java基础知识点涵盖语言特性、面向对象与基本数据类型、缓存池机制、String类特性、参数传递、类型转换、继承、抽象类与接口区别、重写与重载、Object通用方法及关键字使用等核心内容,是掌握Java编程的重要基石。
149 0
|
10月前
|
Java 数据库连接 数据库
Java 相关知识点总结含基础语法进阶技巧及面试重点知识
本文全面总结了Java核心知识点,涵盖基础语法、面向对象、集合框架、并发编程、网络编程及主流框架如Spring生态、MyBatis等,结合JVM原理与性能优化技巧,并通过一个学生信息管理系统的实战案例,帮助你快速掌握Java开发技能,适合Java学习与面试准备。
432 2
Java 相关知识点总结含基础语法进阶技巧及面试重点知识
|
10月前
|
缓存 安全 前端开发
Java 核心知识点与实战应用解析
我梳理的这些内容涵盖了 Java 众多核心知识点。包括 final 关键字的作用(修饰类、方法、变量的特性);重载与重写的区别;反射机制的定义、优缺点及项目中的应用(如结合自定义注解处理数据、框架底层实现)。 还涉及 String、StringBuffer、StringBuilder 的差异;常见集合类及线程安全类,ArrayList 与 LinkedList 的区别;HashMap 的实现原理、put 流程、扩容机制,以及 ConcurrentHashMap 的底层实现。 线程相关知识中,创建线程的四种方式,Runnable 与 Callable 的区别,加锁方式(synchronize
178 0
|
10月前
|
存储 Java 程序员
Java 基础知识点全面梳理包含核心要点及难点解析 Java 基础知识点
本文档系统梳理了Java基础知识点,涵盖核心特性、语法基础、面向对象编程、数组字符串、集合框架、异常处理及应用实例,帮助初学者全面掌握Java入门知识,提升编程实践能力。附示例代码下载链接。
380 0
|
10月前
|
Java 编译器 数据安全/隐私保护
Java 大学期末考试真题与答案 含知识点总结 重难点归纳及题库汇总 Java 期末备考资料
本文汇总了Java大学期末考试相关资料,包含真题与答案、知识点总结、重难点归纳及题库,涵盖Java基础、面向对象编程、异常处理、IO流等内容,并提供完整代码示例与技术方案,助你高效复习备考。
894 3
|
11月前
|
存储 安全 Java
2025 年最新 40 个 Java 基础核心知识点全面梳理一文掌握 Java 基础关键概念
本文系统梳理了Java编程的40个核心知识点,涵盖基础语法、面向对象、集合框架、异常处理、多线程、IO流、反射机制等关键领域。重点包括:JVM运行原理、基本数据类型、封装/继承/多态三大特性、集合类对比(ArrayList vs LinkedList、HashMap vs TreeMap)、异常分类及处理方式、线程创建与同步机制、IO流体系结构以及反射的应用场景。这些基础知识是Java开发的根基,掌握后能为后续框架学习和项目开发奠定坚实基础。文中还提供了代码资源获取方式,方便读者进一步实践学习。
2604 2
|
11月前
|
并行计算 Java API
Java 入门循环结构基础知识点详解
摘要:本文介绍了Java现代循环技术的进阶应用,包括Stream API、响应式编程和模式匹配,展示了如何用Stream API替代传统循环进行声明式集合处理(如过滤、映射和并行计算),以及响应式编程在异步非阻塞场景下的优势。文章还通过电商订单处理系统的案例演示了这些技术的综合应用,并提供了性能优化建议,如合理使用并行处理和避免循环内对象创建。这些现代特性使Java代码更简洁、高效,更适合高并发和I/O密集型场景。
155 1
|
11月前
|
缓存 算法 NoSQL
校招 Java 面试高频常见知识点深度解析与实战案例详细分享
《2025校招Java面试核心指南》总结了Java技术栈的最新考点,涵盖基础语法、并发编程和云原生技术三大维度: 现代Java特性:重点解析Java 17密封类、Record类型及响应式Stream API,通过电商案例演示函数式数据处理 并发革命:对比传统线程池与Java 21虚拟线程,详解Reactor模式在秒杀系统中的应用及背压机制 云原生实践:提供Spring Boot容器化部署方案,分析Spring WebFlux响应式编程和Redis Cluster缓存策略。
309 0
|
11月前
|
存储 设计模式 Java
Java 期末考试不挂科必背基础知识点复习笔记整理
这是一份全面的Java基础知识点复习笔记,涵盖核心特性、数据类型、流程控制、数组、异常处理、JVM原理、多线程、设计模式及Java 8+新特性等内容。结合买飞机票、验证码生成和评委打分等应用实例,助你掌握考试重点,轻松应对Java期末考试,避免挂科!附带代码资源,供深入学习使用。链接:[https://pan.quark.cn/s/14fcf913bae6](https://pan.quark.cn/s/14fcf913bae6)
520 0