Java IO 是一个庞大的知识体系,很多人学着学着就会学懵了,包括我在内也是如此,所以本文将会从 Java 的 BIO 开始,一步一步深入学习,引出 JDK1.4 之后出现的 NIO 技术,对比 NIO 与 BIO 的区别,然后对 NIO 中重要的三个组成部分进行讲解(缓冲区、通道、选择器),最后实现一个简易的客户端与服务器通信功能。
2024年10月08日
Java IO 是一个庞大的知识体系,很多人学着学着就会学懵了,包括我在内也是如此,所以本文将会从 Java 的 BIO 开始,一步一步深入学习,引出 JDK1.4 之后出现的 NIO 技术,对比 NIO 与 BIO 的区别,然后对 NIO 中重要的三个组成部分进行讲解(缓冲区、通道、选择器),最后实现一个简易的客户端与服务器通信功能。
2024年10月08日
世上本没有路,走的人多了就有了,走的人更多一点,路的就多了,连种类也多了。乡间小道、柏油马路、高速路、铁路……
JAVA是面向对象编程,原本一个对象就解决了所有问题,但是用的地方多了一个对象就不够用了,就有了衍生版本。PO、VO、DO……应运而生,但是没看到一个官方的权威性的定义,各个版本也有不同的说法,这里谈谈我的个人理解。我们先来看看他们的定义:
2024年10月08日
今日分享开始啦,请大家多多指教~
引用oracle官网对JDK的概述,里面很明确指出jdk、jre、jvm的关系,jdk是包括jre的,而jvm是jre是一部分。
2024年10月08日
人们对软件架构存在非常多的误解
其中一个最为普遍的误解就是:将架构(Architecture)和框架(Framework)混为一谈。其实很简单,一句话:框架是软件,架构不是软件。框架落脚在“架”字上,可以理解成名词性的,是一个客观性的名词存在,如.Net Framework;而架构体现在“构”字上,理解成构造,是一个动词性的,是一系列动作发生的策略性体现。
2024年10月08日
如果在栈帧中有一个变量,类型为引用类型,比如:
package com.tian.my_code.test;
public class JvmCodeDemo {
public Object testGC(){
int op1 = 10;
int op2 = 3;
Object obj = new Object();
Object result=obj;
return result;
}
}
2024年10月08日
Python是一个有着简单句法的多样性的语言。因为很多新手程序员会喜欢编写很少的代码,这使得Python被广泛应用于多个领域来写脚本,快速开发应用等等。
Java是一个典型化的编程语言,这意味着变量名必须显示声明。相比之下,我们有动态类型的Python,它不需要声明变量。关于静态变量,动态变量,你需要强类型的语言和严谨的编译器来检测犯二的代码。在 Java 中,你不会看到,在一个字符串变量中接着存整型变量。
2024年10月08日
您好,我是湘王,这是我的头条号「湘王说」,欢迎您来,欢迎您再来~
自从Java在2009年被Oracle收购之后,就不再开源,除了Oracle官方发布的版本之外,还有OpenJDK版本,这两者的区别可以自行找某度去搞明白。对于没有几千万用户的应用来说,OpenJDK已经足够了,即使是一些大厂,内部系统用OpenJDK也足够了。
2024年10月08日
执行效率来讲:
C语言是面向过程的语言,执行效率高;C语言通常采用的是ASCII字符集,A-65,a-97
Java是面向对象的语言,执行效率比C语言低;Java采用Unicode字符集。
通用性与安全性:
C语言不能跨平台,C语言没有垃圾回收机制,申请的空间要手动释放。
Java可以跨平台直接移植。只要有安装Java虚拟机(JVM)就可以了;Java有垃圾回收机制
2024年10月08日
队列是一种数据结构,它有两个基本操作:在队列尾部加入元素和从队列头部移除元素。在我们日常开发中,经常用来并发操作数据。java包中有一些应用比较广泛的特殊队列:一种是以ConcurrentLinkedQueue为代表的非阻塞队列;另一种是以BlockingQueue接口为代表的阻塞队列。通过这两种队列,我们保证了多线程操作数据的安全性。
java集合中的Queue继承collection接口,Dueue、LinkedList、PriorityQueue、BlockingQueue等类都实现了它
2024年10月08日
1. Lambda 表达式
Lambda 允许把函数作为一个方法的参数传递进方法中。
作用:解决 Java 被诟病的匿名内部类的问题。
2. 接口中可增加了默认方法
作用:在接口中也可以有实现方法了。
3. HashMap 底层数据结构的变化