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

面霸篇:高频 Java 基础问题(核心

JRE Java Runtime Environment包括 Java 虚拟机和 Java 程序所需的核心类库等。...核心类库主要是 java.lang 包:包含了运行 Java 程序必不可少的系统类,如基本数据类型、基本数学函数、字符串处理、线程、异常处理类等,系统缺省加载这个包 如果想要运行个开发好的 Java...int 与 Integer 区别 Java个近乎纯洁的面向对象编程语言,但是为了编程的方便还是引入了基本数据类型,但是为了能够将这些基本数据类型当成对象操作,Java 为每个基本数据类型都引入了对应的包装类型...在 Java 5 中,引入了自动装箱和自动拆箱功能(boxing/unboxing),Java 可以根据上下文,自动进行转换,极大地简化了相关编程。...这是面向对象编程种设计原则,对于每种设计原则,我们需要掌握它的设计初衷,能解决哪些编程问题,有哪些应用场景。

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

    Java核心技术 1》「建议收藏」

    hashCode方法 2、重写toString()方法是也需要重写hasCode方法 虚拟机中的泛型类型信息 Java泛型的突出特征之是在虚拟机中擦除泛型类型 第五章 继承...1、Class类 在程序运行期间,Java运行时系统始终为所有对象维护个运行时类型。...简单算法 Collections.replace(words,”C++”,”java”); 将word列表中为“C++”的值替换成“Java” 批操作 coll1.retainAll(coll2...);//从coll1中删除所有未在coll2中出现的元素,求交集 将列表转换为数组 String[] values = staff.toArray(new String[0]); 栈 java.util.Stack...signal方法只是随机地选择等待集合的个线程,并解除这个线程的阻塞。 同步块 每个Java对象都有个锁,线程可以通过同步方法获得锁,还有另种机制可以获得锁,即进入个同步块。

    54310

    面霸篇:Java 核心集合容器全解(核心二)

    这样会很吃力,而且会出现看好像自己会,过后就忘记,脸懵逼。 我们需要个系统观,清晰完整的去学习技术,在「面霸篇:Java 核心基础大满贯()」中,码哥梳理了 Java 高频核心知识点。...本篇将举攻破 Java 集合容器知识点,跟着「码哥」起来提纲挈领,梳理个完整的 Java 容器开发技术能力图谱,将基础夯实。 什么是集合?...接口 面向接口编程,抽象出集合类型,使得我们可以在操作集合的时候不必关心具体实现,达到「多态」。 就好比密码箱,我们只关心能打开箱子,存放东西,并且关闭箱子,至于怎么加密咱们不关心。...BlockingQueue 接口是 Java 集合框架的部分,主要用于实现生产者-消费者模式。...理解了以上过程就不难明白 HashMap 是如何解决 hash 冲突的问题,核心就是使用了数组的存储方式,然后将冲突的 key 的对象放入链表中,旦发现冲突就在链表中做进步的对比。

    36621

    Java并发编程核心概念

    当然,对 Java 程序而言,我们不必去关心程序是并行还是并发。 临界区 临界区表示的是多个线程共享但同时只能有个线程使用它的资源。...守护线程 守护线程是种特殊线程,它类似 Java 中的异常系统,主要是概念上的分类,与之对应的是用户线程。...线程优先级 Java 中线程可以有自己的优先级,优先级高的更有优势抢占资源;线程优先级高的不定能抢占到资源,只是个概率问题,而对应优先级低的线程可能会发生饥饿。...并发编程相关 善用 Java8 Stream 对于生产者消费者模式,条件判断是使用 while 而不是 if 懒汉单例采用双重检查和锁保证线程安全 善用 Future 模式 合理使用 ThreadLocal...Java 8 引入 lambda 表达式使在 Java 中使用函数式编程很方便。

    44210

    吐血整理 | Java并发编程 72

    程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比如,如果个线程完成个任务要100毫秒,那么用十个线程完成该任务只需10毫秒。 2、 线程和进程有什么区别?...Java内存模型对个线程所做的变动能被其它线程可见提供了保证,它们之间是先行发生关系。这个关系定义了些规则让程序员在并发编程时思路更清晰。...个对象的终结操作必需在这个对象构造完成之后,也叫对象终结规则。 可传递性 强烈建议大家阅读《Java并发编程实践》第十六章来加深对Java内存模型的理解。...Java中的ReadWriteLock是Java 5 中新增的个接口,个ReadWriteLock维护对关联的锁,个用于只读操作个用于写。...多用并发集合少用同步集合 这是另外个容易遵循且受益巨大的最佳实践,并发集合比同步集合的可扩展性更好,所以在并发编程时使用并发集合效果更好。

    56420

    Java并发编程核心概念

    当然,对 Java 程序而言,我们不必去关心程序是并行还是并发。 临界区 临界区表示的是多个线程共享但同时只能有个线程使用它的资源。...守护线程 守护线程是种特殊线程,它类似 Java 中的异常系统,主要是概念上的分类,与之对应的是用户线程。...线程优先级 Java 中线程可以有自己的优先级,优先级高的更有优势抢占资源;线程优先级高的不定能抢占到资源,只是个概率问题,而对应优先级低的线程可能会发生饥饿。...并发编程相关 善用 Java8 Stream 对于生产者消费者模式,条件判断是使用 while 而不是 if 懒汉单例采用双重检查和锁保证线程安全 善用 Future 模式 合理使用 ThreadLocal...Java 8 引入 lambda 表达式使在 Java 中使用函数式编程很方便。

    52640

    Java编程思想核心笔记

    Java编程思想 文章目录 简介 第章 对象导论 伴随多态的可装换对象 单根继承 参数化类型 对象的创建和生命期 第二章 切都是对象 必须由你创建所有的对象 方法、参数和返回值 第三章...编程思想为 Java 开发的圭臬, 是 Java 开发的经典手册....遂决定以电子版记之~~ Java编程思想基于 jdk 1.5版本, 第章 对象导论 伴随多态的可装换对象 在处理类型的层次结构的时候, 经常把以对象不当作它所属的特定类型来对待, 而是将其当作基类的对象来对待...(在堆上创建) 第二章 切都是对象 描述: 尽管 Java 是基于 C++ 的, 但相比之下, Java种更“纯粹”的面向对象程序设计语言 必须由你创建所有的对象 对象的存储 寄存器....} else { break label1; // 跳转并退出外层循环 } } } 第五章 初始化与治理 随着计算机革命的发展, “不安全” 的编程方式已逐渐成为编程代价高昂的主因之

    55420

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

    Java核心技术(1) 、基础概念 1.1 基本程序设计结构 1.1 数据类型 1.1.1 数值类型 1️⃣从java7开始,加上前缀0b或0B就可以写二进制; 2️⃣指数的表示...; 1.3 继承 继承是Java核心技术 super和this 有些人认为super与this引用是类似的概念,实际上这样的比较并不恰当。...Arrays类的静态方法asList将返回个包装了普通Java数组的List包装器。...背景 对于实际编程应该尽量远离底层。 对于多线程问题,可以通过使用个或多个队列以优雅且安全的方式将其形式化。...第二步:创建ForkJoinPool 对象,并调用invoke方法提交recursiveTask join方法返回结果 同步器 七、书籍推荐 看以下三本书籍,更有利于理解并发 《Java编程思想

    33730

    Java 并发编程核心理论

    Java并发编程系列: Java 并发编程核心理论 Java并发编程:Synchronized及其实现原理 Java并发编程:Synchronized底层优化(轻量级锁、偏向锁)...Java 并发编程:线程间的协作(wait/notify/sleep/yield/join) Java 并发编程:volatile的使用及其原理   并发编程Java程序员最重要的技能之...本文是该系列的第篇文章,是这系列中最核心的理论部分,之后的文章都会以此为基础来分析和解释。 、共享性   数据共享性是线程安全的主要原因之。...如果所有的数据只是在线程内有效,那就不存在线程安全性问题,这也是我们在编程的时候经常不需要考虑线程安全的主要原因之。但是,在多线程编程中,数据共享是不可避免的。...六 总结   本文对Java 并发编程中的理论基础进行了讲解,有些东西在后续的分析中还会做更详细的讨论,如可见性、顺序性等。后续的文章都会以本章内容作为理论基础来讨论。

    42530

    JAVA并发编程volatile核心原理

    上文说到synchronized,JAVA并发编程synchronized全能王的原理,虽然被评为并发全能王,不过用起来也是格外注意,不能搞大力出奇迹那套,容易出现性能问题。...内存屏障是条CPU指令,用来控制在特定条件下的重排序和可见性问题。java编译器会根据内存屏障的规则禁止重排序。...不同操作系统实现不样,比如jdk 8 linux x86是这个往细的讲,volatile为了保证变量的可见性,在java编译器编译代码指令时,对volatile修饰变量的读和写操作,都会在这个操作的前后插入屏障指令...修改后,再次插入个storeload屏障指令。读前,插入个loadStore屏障指令。读后,插入个loadload屏障指令。...4.volatile的缺点-原子性问题 比如两个线程对个volatile修饰的count字段,进行2w次++,由于原子性问题,导致结果并不是20000.package lading.java.mutithread

    11320

    Java核心技术2 高级特性 学习笔记(6)

    参考:Java核心技术2 高级特性 第十二章 建议只有在必需的时候才使用本地代码,特别是在以下三种情况下,也许可以使用本地代码: 你的应用需要访问的系统特性和设备是通过Java平台无法实现的 已经有大量的测试过和调试过的用另种语言编写的代码...,并且知道如何将其导出到所有的目标平台上 通过基准测试,发现所编写的Java代码比用其他语言编写的等价代码慢很多 Java个用于和本地C代码进行互操作的API,称为Java本地接口(JNI)。...将个本地方法连接到Java程序中: (1)在Java类中声明个本地方法 (2)运行javah以获得包含该方法的C声明的头文件 (3)用C实现该本地方法 (4)将代码置于共享类库中 (5)在Java程序中加载该类库

    44320

    Java核心技术2 高级特性 学习笔记(3)

    参考:《Java核心技术2 高级特性 》第三章 XML是种非常有用的描述结构化信息的技术。 XML格式能够表示层次结构,这比属性文件的平面结构更加灵活。...解析XML文档,Java提供了两种XML解析器: 文档对象模型(Document Object Model,DOM)解析器这样的属性解析器,将读入的XML文档转换为树结构 XML简单API(Simple...类库提供的流机制解析器,老而弥坚的SAX解析器和添加到Java SE6中的更现代化的StAX解析器。...SAX解析器使用的是事件回调,而StAX解析器提供了遍历解析事件的迭代器,后者用起来通常更方便些。...StAX解析器是种拉解析器(pull parser),与安装事件处理器不同,只需要使用基本循环来迭代所有的事件。

    63430

    Java核心技术2 高级特性 学习笔记(5)

    参考:Java核心技术2 高级特性  第九章 Java技术提供了三种确保安全的机制: 语言设计特性(对数组的边界进行检查,无不受检查的类型转换,无指针算法等)。...在Oracle的Java语言实现中,扩展类加载器和系统类加载器都是用Java来实现的。它们都是URLClassLoader类的实例。...安全管理器与访问权限 旦某个类被加载到虚拟机中,并由检验器检查过之后,Java平台的第二种安全机制就会启动,这个机制就是安全管理器。 安全管理器就是个负责控制具体操作是否允许执行的类。...默认情况下,有两个位置可以安装策略文件: Java平台主目录的java.policy文件 用户主目录的 .java.policy文件 数字摘要 消息摘要 消息摘要是数据块的数字指纹,例如,所谓的SHA1...消息摘要的两个基本属性: 如果数据的1位或者几位改变了,那么消息摘要也将改变 拥有给定消息的伪造者不能创建于原消息具有相同摘要的假消息 Java编程语言已经实现了MD5、SHA-1、SHA-256、SHA

    62820

    Java核心技术2 高级特性 学习笔记(4)

    参考:Java核心技术2 高级特性 第八章 三种用于处理代码的技术: 脚本API使得调用诸如JavaScript和Groovy这样的脚本语言代码 可以使用编译器API在应用程序内部编译Java代码...注解处理器可以在包含注解的Java源代码和类文件上进行操作。...注解不会改变程序的编译方式,Java编译器对于包含注解和不包含注解的代码会生成相同的虚拟机指令。...在Java中,注解是当做个修饰符来使用的,被置于被注解项之前,中间没有分号。...语言模型API,可以使用语言模型API来分析源码级的注解,与呈现类和方法的虚拟机表示形式的反射API不同,语言模型API让我们可以根据Java语言的规则去分析Java程序。

    68110

    Java核心技术(Java白皮书)Ⅰ 第Java程序设计概述

    4.Java将成为适用于所有平台的通用性编程语言?   从理论上讲,这是完全有可能的。   ...Java在服务器端编程和跨平台客户端应用领域则很有优势。 5.Java只不过是另外种程序设计语言?   Java种很好的程序设计语言,很多程序设计人员喜欢Java胜过C、C++或C#。...是否有开发工具提供商能建立强大的编程和调试环境?    语言和工具集是否能够与其他计算基础架构整合在起?   Java的成功源于其类库能够让人们轻松地完成原本有定难度的事情。    ...Java减少了指针错误,这是个额外的好处,因此使用Java编程的效率更高。但这些并不是Java成功的全部原因。  6.Java是专用的,应该避免使用?   ...这些设备大多使用安卓平台,这是Java的衍生产物。学习Java编程肯定也对Android编程很有帮助。 ~~~~~~~~~~★房上的猫★~~~~~~~~~~

    1.5K100

    Java核心技术2 高级特性 学习笔记(1)

    参考:Java核心技术2 高级特性 第Java SE 8的流库 流提供了种让我们可以在比集合更高的概念级别上指定计算的数据视图。...其中种用于操作Comparable元素的流,而另种可以接受个Comparator。 peek方法会产生另个流,它的元素与原来流中的元素相同,但是每次获取个元素时,都会调用个函数。...super T> comparator) // 分别产生这个流的第个和任意个元素,如果这个流为空,会产生个空的Optional对象。...// java.util.stream.Collectors 8 // 产生个将元素收集到列表或集中的收集器。 static Collector predicate) groupingBy方法会产生个映射表,它的每个值都是个列表,如果想要以某种方式来处理这些列表,就需要提供个下游收集器。

    1K20

    Java核心技术2 高级特性 学习笔记(2)

    参考:Java核心技术2 高级特性 第二章 对象序列化是以特殊的文件格式存储对象数据的。当存储个对象时,这个对象所属的类也必须存储。...某些数据域是不可以被序列化的,java种很简单的机制来防止这种域被序列化,就是将它们标记成是transient的。如果这些域属于不可序列化的类,也需要将它们标记成transient。...java.nio包使内存映射变得简单,需要做的: 首先,从文件中获得个通道(channel),通道是用于磁盘文件的种抽象,它使我们可以访问诸如内存映射、文件加锁机制以及文件间快速数据传递等操作系统特性...文件锁是由整个Java虚拟机持有的,如果有两个程序是由同个虚拟机启动的,那么它们不可能每个都获得在同个文件上的锁,当调用lock和tryLock方法时,如果虚拟机已经在同个文件上持有了另个重叠锁...,那么这两个方法将抛出OverlappingFileLockException 在些系统中,关闭个通道会释放由java虚拟机持有的底层文件上的所有锁。

    64920

    Netty网络编程

    Netty第 . NIO 基础 1....//不使用事件,缺点是,程序运行到这会等到200M文件发送完成后才继续往下执行,不符合异步事件模型 //的编程思想,如果缓冲区直处于不可写状态,那么该过程直在这里死循环,浪费了CPU资源。...分两组选择器 单线程配个选择器,专门处理 accept 事件 创建 cpu 核心数的线程,每个线程配个选择器,轮流处理 read 事件 旧模式: 新模式 从上图可以看出,Boss线程只负责建立客户端连接...,建立后,由工作线程来处理客户端的数据读写事件的监听 工作线程的数量般控制在cpu核心数大小左右,并且每个工作线程对应个Selector,负责监听注册在自己选择器上面的所有客户端的读写事件 写代码前...参考 UNIX 网络编程 - I 5.3 零拷贝 传统 IO 问题 传统的 IO 将个文件通过 socket 写出 File f = new File("helloword/data.txt

    69110
    领券