java 之父呼吁弃用 java 8;苹果手机或将改用 usb-c 充电器;node.js 18 发布 | 思否周刊 - 编程思维

40s 新闻速递2023 年 4 月 11 日之后微软将不再为 Office 2013 提供安全更新因不附带充电器,苹果在巴西被判赔偿消费者 7000 元微软或在 Xbox 免费游戏中放广告 最快第三季度启用安全专家发现新型恶意 Windows 11 网站美国上诉法院裁决 Web 抓取合法465 亿美元融资承诺函到手 马斯克考虑对 Twitter 提出收购要约欧盟将在所有智能手机中使用 USB-C

一文回顾 java 入门知识(上) - 编程思维

Java前世今生Java最早是由SUN公司(已被Oracle收购)的詹姆斯·高斯林(高司令,人称Java之父)在上个世纪90年代初开发的一种编程语言,最初被命名为Oak,目标是针对小型家电设备的嵌入式应用,结果市场没啥反响。谁料到互联网的崛起,让Oak重新焕发了生机,于是SUN公司改造了Oak,在1995年以Java的名称正式发布,原因是Oak已经被人注册了,因此SUN注册了Java这个商标。随着

java8 新特性 - 编程思维

1. Lambda表达式Lamba 表达式对于已经使用了其他的使用过流式编程语言的来说,可能并不陌生,Lambda 表达式(或函数)只是一个匿名函数,即没有名称且没有绑定标识符的函数。它们完全写在需要的地方,通常作为其他函数的参数。lambda 表达式的基本语法:parameters 参数 expression 表达式(方法) (parameters) -> expression or (

日期api - 编程思维

JAVA8实战 - 日期API前言​ 这一节我们来讲讲JAVA8的日期类,源代码的作者其实就是Joda-Time,所以可以看到很多代码的API和Joda类比较像。日期类一直是一个比较难用的东西,但是JAVA8给日期类提供了一套新的API让日期类更加好用。​ 本文代码较多,建议亲自运行代码理解。内容概述:关于JDK8日期的三个核心类:LocalDate、LocalTime、LocalDa

optionalの应用 && flatmap和map的区别 - 编程思维

从 Java 8 引入的一个很有趣的特性是 Optional 类。Optional 类主要解决的问题是臭名昭著的空指针异常(NullPointerException) —— 每个 Java 程序员都非常了解的异常。本质上,这是一个包含有可选值的包装类,这意味着 Optional 类既可以含有对象也可以为空。Optional 是 Java 实现函数式编程的强劲一步,并且帮助在范式中实现。但是 Op

java hashmap源码解析 - 编程思维

注:此文针对jdk1.8下的源码进行分析,不同jdk版本下的HashMap会略有不同背景介绍哈希表的实现主要分为两大类:开放寻址法和拉链法。而在Java源码中,HashMap的实现可归为拉链法这一大类中。本文将依照Java源码,将jdk1.8实现的HashMap的种种细节进行分析。源码分析 /** * The default initial capacity - MUST be

java8,stream之filter简单介绍 - 编程思维

简述Java8出了个Stream流、让原本对集合类操作很笨拙的写法,变得很流畅!相信在Stream没有出生之前我们对集合做一些累加、过滤、等一些操作都是for for 一路的 forrr到底!代码量也是够大!写过php的同学都用过Collection类的流式操作,真是顺畅!本文是带大家介绍下Stream里Filter的一些基本用法!准备代码class Person { private St

坏了!面试官问我垃圾回收机制 - 编程思维

面试官:我还记得上次你讲到JVM内存结构(运行时数据区域)提到了「堆」,然后你说是分了几块区域嘛面试官:当时感觉再讲下去那我可能就得加班了面试官:今天有点空了,继续聊聊「堆」那块吧候选者:嗯,前面提到了堆分了「新生代」和「老年代」,「新生代」又分为「Eden」和「Survivor」区,「survivor」区又分为「From Survivor」和「To Survivor」区候选者:说到这里,我就想聊

向工程腐化开炮 | java代码治理 - 编程思维

作者:刘天宇(谦风)系列文章回顾《向工程腐化开炮 | proguard治理》《向工程腐化开炮 | manifest治理》。本文为系列文章第三篇,虽然标题是java代码,但准确来讲,本文主要聚焦的是jvm字节码,因此相关工具和治理,对于kotlin也同样适用,如无特殊情况,不再单独说明。此外,还会涉及到java资源。java代码腐化和失控,主要体现在不合理代码使用不断累积。这里“不合理”的定义,由上

stream.map 和 stream.foreach 的区别 - 编程思维

网上很多关于讲解这俩个区别的文章,但大多数要么不明不白,要么太复杂难理解。所以自己通俗的讲一下,毕竟不会太深奥,只是个人理解。什么是 stream 流我们在使用集合或数组对元素进行操作时往往会遇到这种情况:通过对不同类型的存储元素,按照特定条件进行查找、排序、等操作时往往会写一大段代码,而且更要命的是,不同类型的数据,操作的方法也不一样,比如一个存储 Student 实体类和一个只存储 Strin

java8 判空新写法! - 编程思维

引言在文章的开头,先说下NPE问题,NPE问题就是,我们在开发中经常碰到的NullPointerException.假设我们有两个类,他们的UML类图如下图所示图片在这种情况下,有如下代码user.getAddress().getProvince();这种写法,在user为null时,是有可能报NullPointerException异常的。为了解决这个问题,于是采用下面的写法if(user!=n

java 基础常见知识点&面试题总结(上),2022 最新版!| javaguide - 编程思维

《Java 面试指北》来啦!这是一份教你如何更高效地准备面试的小册,涵盖常见八股文(系统设计、常见框架、分布式、高并发 ......)、优质面经等内容。JavaGuide(Java学习&&面试指南):https://javaguide.cn/首发于:https://javaguide.cn/java/basis/java-basic-questions-01.html你好,我是 G

java基础 | stream流原理与用法总结 - 编程思维

Stream简化元素计算;一、接口设计从Java1.8开始提出了Stream流的概念,侧重对于源数据计算能力的封装,并且支持序列与并行两种操作方式;依旧先看核心接口的设计:BaseStream:基础接口,声明了流管理的核心方法;Stream:核心接口,声明了流操作的核心方法,其他接口为指定类型的适配;基础案例:通过指定元素的值,返回一个序列流,元素的内容是字符串,并转换为Long类型,最终计算求和

全面吃透java stream流操作,让代码更加的优雅 - 编程思维

在JAVA中,涉及到对 数组、Collection等集合类中的元素进行操作的时候,通常会通过循环的方式进行逐个处理,或者使用Stream的方式进行处理。例如,现在有这么一个需求:从给定句子中返回单词长度大于5的单词列表,按长度倒序输出,最多返回3个在JAVA7及之前的代码中,我们会可以照如下的方式进行实现: /** * 【常规方式】 * 从给定句子中返回单词长度大于5的单词列表,按长度倒序输出

讲透java stream的collect用法与原理,远比你想象的更强大 - 编程思维

大家好,又见面了。在我前面的文章《吃透JAVA的Stream流操作,多年实践总结》中呢,对Stream的整体情况进行了细致全面的讲解,也大概介绍了下结果收集器Collectors的常见用法 —— 但远不是全部。本篇文章就来专门剖析collect操作,一起解锁更多高级玩法,让Stream操作真正的成为我们编码中的神兵利器。 初识Collector先看一个简单的场景:现有集团内所有人员列表,需要从中筛

java8(jdk1.8)新特性 - 编程思维

一、Java8(JDK1.8)新特性1、Lamdba表达式2、函数式接口3、方法引用和构造引用4、Stream API5、接口中的默认方法和静态方法6、新时间日期API7、OPtional8、其他特性二、java8(JDK1.8)新特性简介1、速度快;2、代码少、简介(新增特性:lamdba表达式);3、强大的Stream API;4、使用并行流和串行流;5、最大化较少空指针异常Optional;

java8线程池threadpoolexecutor底层原理及其源码解析_rhyme-编程思维

目录小侃一下1. 使用线程池的好处. 为什么要使用线程池?2. 线程池核心参数介绍3. 提交任务到线程池中的流程3.1 ThreadPoolExecutor#execute方法整体流程3.2 排队恰火锅的场景4. ThreadPoolExecutor线程池源码及其原理4.1 从创建ThreadPoolExecutor开始: 线程池构造函数的源码4.2 ThreadPoolExecutor中的一些