参考链接: Java的历史 java的历史 Java is an object-oriented programming language....Java是一种面向对象的编程语言。 Java是1990年代由Sun Microsystems的James Gosling及其同事开发的。 ...它应该易于使用,并具有面向对象编程的良好功能。 Java是如何得名的? (How Java got its name?) ...在长达20多年的使用期中,它已经发生了很大的变化。 下图显示了Java编程语言的版本历史。 .../33218/history-of-java java的历史
本文链接:https://blog.csdn.net/weixin_42528266/article/details/102917282 Java的特点 Java是跨平台的 Java程序的跨平台主要是指字节码文件可以在任何具有...Java虚 拟机的计算机或者电子设备上运行,Java虚拟机中的Java解释 器负责将字节码文件解释成为特定的机器码进行运行。...Overloading) 不再有全局变量 取消自动类型转换,要求强制转换 不再有手动内存管理 Java是安全的 Java取消了强大但又危险的指针。...Java提供了自动内存管理机制,由垃圾回收器在后台自动回收, Java在字节码的传输过程中使用了公开密钥加密机制(PKC)。...Java是健壮的 Java的强制类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。 对指针的丢弃是Java的明智选择。 Java的安全检查机制使得Java更具健壮性。
1 方法的概念以及优点 方法从简来说就是,把一个功能单独放在大括号内,当需要这个功能的时候我们直接调用方法,这样不仅实现了代码的复用,还解决了代码冗余的问题。...比如一个男孩和一个女孩在一起相爱必然会经历以下过程,刚刚相遇其中一方产生好感,想办法接近另一方,两人便开始聊天约会等活动,然后相互都产生好感,再到其中一方表白,最后相爱,恋爱后又会吵架,沟通,道歉,原谅,最后相互理解和加深感情,我们用java...2 方法的定义 定义方法的的方式十分灵活多样,但最基础的就是public static void加上方法名再加一个小括号,方法名使用小驼峰式写法(首字母小写,此后每个单词首字母大写)。...我们把上一点的几个步骤放到对应的方法里,我们的代码看起来就会层次很清楚,如下 public class MyBlogOne { public static void main(String[]...,这一眼就看出三个不同的阶段,比上刚刚开始一看就十多个步骤顺眼多了吧,我们写程序就是要这样层次清楚条理清晰,让别人看我们写的代码很舒服,所以用java写程序,别什么都往main函数里写,多运用方法会使我们的代码看起来更层次清晰
this 关键字是Java中的一个特殊引用,它代表当前对象的引用。它主要用于区分成员变量和局部变量、调用当前对象的方法以及构造函数中调用其他构造函数。...下面是对this关键字的详细讲解:区分成员变量和局部变量:在类中,如果一个成员变量与一个局部变量同名,通过使用this关键字可以明确指定成员变量。...调用当前对象的方法:在对象的一个方法中,可以使用this关键字调用同一个对象的其他方法。...这种调用必须放在构造函数的第一行。...name和age参数的构造函数。
大家好,又见面了,我是你们的朋友全栈君。 Java是一门程序设计语言,它有三个版本,Java SE(标准版)、Java EE(企业版)和Java ME(微型版)。...而Java SE只是一个使用Java进行编程的规范、框架,它不是一门编程语言。Java SE(java standard edition),一般包括jdk、jre以及各种API文档等。...Java SE(Java Platform,Standard Edition)。Java SE以前称为J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的Java应用程序。...Java SE包含了支持Java Web服务开发的类,并为Java Platform,Enterprise Edition(Java EE)提供基础。...Java SE = jdk + jre ·jdk是开发Java程序用的; ·jre是运行java程序用的; Java SE就是Java应用程序,是一种分类,不是什么软件。
大家好,又见面了,我是你们的朋友全栈君。 java switch[编辑] 概述 Java中的switch是“开关”的意思,有时也被划分为一种“选择语句”。...根据一个整数表达式的值,switch语句可从一系列代码选出一段执行。 一.Java的简介 Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。...Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。...二.Java switch的概念 Java中的switch是“开关”的意思,有时也被划分为一种“选择语句”。根据一个整数表达式的值,switch语句可从一系列代码选出一段执行。...三.Java中switch的语句格式 switch ( 整型或字符型变量 ) { case 变量可能值1 : 分支一; break; case 变量可能值2 : 分支二; break; case 变量可能值
今日学习目标:集合遍历 创作者:颜颜yan_ ✨个人主页:颜颜yan_的个人主页 ⏰本期期数:第五期 专栏系列:JAVA ---- 集合遍历 前言 一、Iterator接口 二、foreach...---- 一、Iterator接口 Iterator 接口是 Java 集合框架中的一员,但它与 Collection 接口和 Map 接口有所不同,Collection 接口和 Map 接口主要用于存储元素...下面通过一个案例介绍如何使用Iterator 接口遍历集合中的元素,代码如下所示: import java.util.*; public class Main { public static...通过一个案例来演示foreach循环的方法,代码如下: import java.util.*; public class Main { public static void main(String...运行结果如图所示: 图片 foreach 循环在遍历集合时语法非常简洁,没有储环条件,也没有迭代语句,所有这些工作都交给 Java 虚拟机执行了。
概述: Java Stream API 有助于处理元素序列,提供过滤、映射和减少等操作。...流可用于以声明方式执行操作,类似于对数据的类似 SQL 的操作 关键概念: 流:支持顺序和并行聚合操作的元素序列 中间操作:返回另一个流且延迟的操作(例如,filter、map) 码头运营:产生结果或副作用且不懒惰的操作...; import java.util.List; import java.util.stream.Collectors; public class Main { public static void...Stream API 是用于处理集合和数据的强大工具。...了解这些功能将帮助您编写更简洁、更简洁、更易读的代码。
当涉及 Java 编程时,了解内存空间是至关重要的。Java 的内存管理是由 Java 虚拟机(JVM)负责的,这意味着开发人员通常不需要直接操作内存。...然而,理解 Java 内存空间的工作原理对于编写高效、可靠的代码至关重要。...Java 内存空间概述 Java 内存空间主要分为以下几个部分: 堆(Heap):Java 堆是 JVM 中最大的一块内存空间。它用于存储对象实例和数组。...内存整理:由于 Java 堆是动态分配的,经过一段时间的使用后,堆上会存在大量的内存碎片。...总的来说,理解 Java 内存空间的工作原理对于编写高效、可靠的 Java 代码至关重要。通过合理使用内存空间、优化内存管理策略,可以提高应用程序的性能和稳定性。
在初学Java的时候,会遇到很多不懂的问题,在此做一些整理。...JRE和JDK的区别 JRE(Java Runtime Environment):java的运行环境,包括jvm+java的核心类库。...JDK(Java Development Kit):java的开发工具,包括jre+开发工具。...环境变量PATH和classpath的作用 path是配置Windows可执行文件的搜索路径,即扩展名为.exe的程序文件所在的目录,用于指定DOS窗口命令的路径。...Classpath是配置class文件所在的目录,用于指定类搜索路径,JVM就是通过它来寻找该类的class类文件的。 变量的作用是储存变量。
大家好,又见面了,我是你们的朋友全栈君。 Java 堆栈 堆栈是一种线性数据结构,用于存储对象的集合。它基于先进先出(LIFO)。 Java集合框架提供了许多接口和类来存储对象的集合。...其中之一是Stack类,它提供了不同的操作,例如推,弹出,搜索等。 在本节中,我们将讨论Java Stack类,其方法和实现在 Java中的堆栈数据结构程序。...但是在转到Java Stack类之前,请先快速了解堆栈的工作原理。 堆栈数据结构具有两个最重要的操作,分别是push和pop。推操作将元素插入堆栈,弹出操作将元素从堆栈顶部移除。...下表显示了不同的值 Java Stack类 在Java中,Stack是属于Collection框架的类,该类扩展了Vector类。它还实现了列表,集合,可迭代,可克隆,可序列化的接口。...堆栈类的方法 我们可以执行push,pop,peek并在堆栈上进行搜索操作。 Java Stack类主要提供五种方法来执行这些操作。除此之外,它还提供了 Java Vector类的所有方法。
将所有的数全部异或,得到的结果与1^2^3^…^1000的结果进行异或,得到的结果就是重复数。 但是这个算法虽然很简单,但证明起来并不是一件容易的事情。这与异或运算的几个特性有关系。...所以,将所有的数全部异或,得到的结果与1^2^3^…^1000的结果进行异或,得到的结果就是重复数。...当然有人会说,1+2+…+1000的结果有高斯定律可以快速计算,但实际上1^2^…^1000的结果也是有规律的,算法比高斯定律还该简单的多。...事实上,从实际的运行统计上看,我们发现要交换的两个变量,是同号的概率很大,而且,他们之间相减,越界的情况也很少,因此我们可以把上面的加减法互换,这样使得程序出错的概率减少: int a=5,b=10;...表面上看起来很简单,但是不容易想到,尤其是在习惯引入第三变量的算法之后。 它的原理是:把a、b看做数轴上的点,围绕两点间的距离来进行计算。
Java的第一个正式版本发布于1996年1月23日,在这个最原始的Java版本中,类和接口加起来总共只有211个,那时候的Java并不完美也不强大,但是由于它紧紧的抓住了当时最时髦的两样东西——互联网和浏览器...今年是Java诞生的第20年,写这样的一篇文章纪念那个曾经让我执着和疯狂的Java,也纪念那个从单纯到复杂再回归单纯的我。 ?...那时候我对Java的了解其实很少很少,但是那本傻瓜书中一些精美的Java代码却深深的吸引了我。...---- 2005年 SUN公司宣布,Java三个版本更名为Java SE、Java EE和Java ME 我的故事:这一年我被保送继续攻读博士研究生,并希望在这个过程中找到我的Java程序和科研工作的交集...,Java一直都很沉寂,很多Java程序员也在千呼万唤中等待Java 8的出场。
Java JSON 本章节我们将为大家介绍如何在 Java 语言中使用 JSON。 类库选择 Java中并没有内置JSON的解析,因此使用JSON需要借助第三方类库。...下面是几个常用的 JSON 解析类库。 Gson:谷歌开发的 JSON 库,功能十分全面。 FastJson:阿里巴巴开发的 JSON 库,性能十分优秀。...环境配置 在 Maven 构建的项目中,在pom.xml文件中加入以下依赖即可。...输出结果如下: {"boolean":true,"string":"string","list":[1,2,3],"int":2} 解码 从 JSON 对象到 Java 变量的解码过程如下: public...由于最近需要使用Gson,而Gson和fastjson在使用上还是有所区别的,所以今天稍微试一下Gson的使用.
1.什么是Java NIO? 同步非阻塞io模式,拿烧开水来说,NIO的做法是叫一个线程不断的轮询每个水壶的状态,看看是否有水壶的状态发生了改变,从而进行下一步的操作。...Java NIO有三大组成部分:Buffer,Channel,Selector,通过事件驱动模式实现了什么时候有数据可读的问题。...channel 和 buffer 之间的交互如下: CHANNEL BUFFER.png Selector:Selector(选择器)是Java NIO中能够检测一到多个NIO通道,通道将关心的事件注册到...这样,一个单独的线程可以管理多个channel,从而管理多个网络连接。 selector工作模式.png 2.什么是Java BIO?.../ http://zhhphappy.iteye.com/blog/2032893 http://wiki.jikexueyuan.com/project/java-socket/tcpserver.html
Java 内存管理最显著的功能之一是自动垃圾回收。 其主要目的是自动管理运行时对象的内存分配和删除,从而使开发人员更容易编写更安全的代码,而不会出现任何与内存相关的问题。...Java 堆:用于动态内存分配。它存储程序执行过程中创建的对象和其他数据结构。 堆栈:用于存储局部变量和方法调用框架。 Java 中的每个线程都有自己的栈,栈在线程启动时创建。...在 Java 中,以下内容被视为有效的 GC 根。...活动的 Java 线程。 静态变量:它们属于类,在所有实例中共享。只要类被加载,它们就一直是 GC 根。 JNI 引用:它们是作为 JNI 调用的一部分创建的。...从 Java 9 开始提供的一种最新算法是 G1 垃圾回收器。 它提供了更可预测的暂停时间,并为具有大堆的应用程序提供了更好的可伸缩性。
Java是原本设计用于机顶盒之类的小型设备上的,但出乎任何人的意料,互联网大潮来临后,Java编写一次、到处运行的特性被各种应用发挥到了极致。...在企业级软件上,Java更是整合各种不同软硬件和操作系统做出分布式应用的神器。 二十年来,Java除了受到.Net的小型挑战外,由于拥有最成熟稳定的企业应用组件,其互联网的支柱地位仍牢不可破。...为了赶时间,谷歌来不及更改Android所用的开发语言Java,这给后来埋藏了重大的祸根。 当然,Java充足的程序员群体和便利的开发特性,对Android本身来讲也是有极大帮助的。...而Sun对这种分裂Java的行为不能容忍。 四 谷歌确实去找Sun申请过Java授权,但是Sun要求谷歌分享对Android分支的控制而遭到拒绝。...在未获Java授权的情况下,谷歌采取了“洁净室”这种反向工程手段(可参考:《BIOS和PC的故事》)开发了自己的Java库。这是一种类似抄袭但又不明显违法的手段。
序 本文主要研究一下java的java.security.egd SunEntries /Library/Java/JavaVirtualMachines/temurin-8.jdk/Contents/...,如果没有设置则读取$JAVA_HOME/jre/lib/security/java.security文件中的securerandom.source配置,默认值为file:/dev/random SeedGenerator...则通过egdSource来构建URL 小结 SunEntries优先读取java.security.egd,如果没有设置则读取$JAVA_HOME/jre/lib/security/java.security...文件中的securerandom.source配置,默认值为file:/dev/random SeedGenerator判断egdSource如果是file:/dev/random及file:/dev/.../urandom这种表示看起来比较困惑,翻译过来就是是/dev当前目录下的unrandom,其实就是/dev/urandom,之所以有这种传参主要是早期jdk版本有个bug,没有给NativeSeedGenerator
前段时间因为看JUC的源码,里面有大量关于unsafe的操作,所以就来看看了.写点笔记总结下(本文基于jdk1.8): unsafe可以帮我们直接去操作硬件资源,当然了是借助java的jit来进行的...,官方不推荐使用,因为不安全,例如你使用unsafe创建一个超级大的数组,但是这个数组jvm是不管理的,只能你自己操作,容易oom,也不利于资源的回收....content.length,null,null); c.getMethod("getId").invoke(c.newInstance(), null); /** * 内存操作 * 可以在Java...packThread.start(); TimeUnit.SECONDS.sleep(1); //注释掉下一行后,线程3秒数后进行输出,否则在1秒后输出 unsafe.unpark(packThread); /** * Java...使用直接内存分配,我们创建的数组大小受限于堆大小; * 实际上,这是堆外内存(off-heap memory)技术,在java.nio包中部分可用; * * 这种方式的内存分配不在堆上,且不受GC
在Java编程语言中,基本类型是构成程序基础的重要组成部分。了解Java的基本类型对于程序员来说至关重要,因为它们是在编写Java程序时最常用的数据类型之一。...在本文中,我们将深入探讨Java的基本类型,包括其类型、大小和用法。 1. Java的基本类型 Java的基本类型是构成Java编程语言核心的基础数据类型。...在表达式中混合使用不同类型的数据时,Java会根据一定的规则进行类型转换,可能导致精度损失或溢出的问题。...通过深入了解Java的基本类型,可以更加高效地编写出稳健、可靠的Java程序。 结语 本文对Java的基本类型进行了详细的解读,包括类型、大小和用法等方面。...希望通过本文的介绍,读者能够更好地理解Java的基本类型,并能够在实际编程中灵活运用。
领取专属 10元无门槛券
手把手带您无忧上云