JAVA
文章平均质量分 54
朗福德_豪
这个作者很懒,什么都没留下…
展开
-
NIO基础
java NIO简介Java NIO(New IO)是一个可以替代标准Java IO API的IO API(从Java 1.4开始),Java NIO提供了与标准IO不同的IO工作方式。Java NIO: Channels and Buffers(通道和缓冲区)标准的IO基于字节流和字符流进行操作的,而NIO是基于通道(Channel)和缓冲区(Buffer)进行操作,数据总是从通道读取到缓冲区中,或者从缓冲区写入到通道中。Java NIO: Non-blocking IO(非阻塞IO)Java原创 2021-06-22 17:26:49 · 731 阅读 · 2 评论 -
BIO基础
1、Java BIO 基本介绍Java BIO 就是传统的java io编程, 其相关的类和接口在java.io。BIO:同步阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,可以通过线程池机制改善(实现多个客户连接服务器)。BIO 方式适用于连接数目比较小且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用中,JDK1.4以前的唯一选择,程序简单易理解。2、Java BIO 工作机制(1)服务端原创 2021-06-22 17:23:13 · 512 阅读 · 3 评论 -
AQS(AbstractQueuedSynchronizer)源码解析
AQS是什么?在 Lock 中,用到了一个同步队列 AQS,全称 AbstractQueuedSynchronizer,它是一个同步工具也是 Lock 用来实现线程同步的核心组件。java.util.concurrent中大部分的工具都是通过AQS实现的。AQS核心思想是,如果被请求的共享资源空闲,则将当前请求资源的线程设置为有效的工作线程,并且将共享资源设置为锁定状态。如果被请求的共享资源被占用,那么就需要一套线程阻塞等待以及被唤醒时锁分配的机制,这个机制AQS是用CLH队列锁实现的,即将暂时获取不原创 2021-06-16 10:30:46 · 965 阅读 · 3 评论 -
ArrayList解析源码
本文主要是以图的形式展现原创 2021-06-05 15:19:05 · 572 阅读 · 2 评论 -
java基础(集合概述)
集合提出的背景:在没有集合类之前,实际上在Java语言里已经有一种方法可以存储对象,那就是数组。数组不仅可以存放基本数据类型也可以容纳属于同一种类型的对象。数组的操作是高效率的,但也有缺点。比如数组的长度是不可以变的,数组只能存放同一种类型的对象(或者说对象的引用)另外,在程序设计过程中,程序员肯定会经常构建一些特殊的数据结构以正确的描述或者表达现实情况。比如描述火车进站出站,他们会用到“栈”这个数据结构,常用的数据结构还有:队列、链接表、树和散列表等等。这些数据结构几乎在每一段程序设计过程中都会使用到原创 2021-06-05 15:12:16 · 537 阅读 · 1 评论 -
java内存分配简述
java内存分配中的栈(本文参考的是博客园中的一篇博客,具体的链接地址找不到了)在函数中定义的一些基本类型的变量数据和对象的引用变量都在函数的栈内存中分配。当在一段代码块定义一个变量时,Java就在栈中 为这个变量分配内存空间,当该变量退出该作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。栈中的数据大小和生命周期是可以确定的,当没有引用指向数据时,这个数据就会消失。1.每个线程包含一个栈区,栈中只保存基础数据类型的对象和自定义对象的引用(不是对象),对象都存放在原创 2021-06-05 15:01:25 · 1156 阅读 · 0 评论 -
java基础(==与equals,以及内存简析)
“==” 比较的是两个引用在内存中指向的是不是同一对象(即同一内存空间),也就是说在内存空间中的存储位置是否一致。(引用类型)equals方法是由Object类提供的,可以由子类来进行重写Java 语言里的 equals方法其实是交给开发者去覆写的,让开发者自己去定义满足什么条件的两个Object是equal的。所以我们不能单纯的说equals到底比较的是什么。你想知道一个类的equals方法是什么意思就是要去看定义。(以上是来自知乎用户的回答)我们要理解的是equals存在的目的。JDK源码j原创 2021-06-05 14:49:08 · 402 阅读 · 1 评论 -
java 基础(数组)
数组数组:一组变量,它们包含具有相同类型的值。数组是对象,因此是引用类型。数组创建及内存的变化情况(组图):第一步:定义一个int[]类型的数组第二步:动态初始化数组,数组长度为5第三步:为第一个元素赋值为11声明并赋值的过程:引用数组类型的内存变化:java并不直接支持多维数组,但它允许一维数组作为另一个一维数组的元素,这样就获得了多维数组的效果。Arrays类Arrays类为许多常见的数组操作提供了一些静态方法,从而不必让程序员亲自编写这些方法,例如:排序的sort方法,搜索bin原创 2021-06-05 14:42:01 · 1143 阅读 · 1 评论 -
简简单单小文章-声明
前言好长时间也没写文章了,原因有很多,就不在这说了,好不容易有个空了就拿起了java基础翻看着,然后也就有了这篇文章。正文java中常用的声明有三种方式,那么这三种方式有什么区别呢?对于jvm熟悉的朋友可能感觉这个很简单吧!下边咱们就来说明一下这个区别,我试着再IDEA中写了一下并运行调试了看下图:通过代码的调试,有查了一些其他人的看法总结出来三点: //声明有一个标识符的名字是student0 Student student0; //声明有一个标识符的名字是s原创 2021-01-31 08:44:45 · 414 阅读 · 5 评论 -
java多线程简单的demo举例
前言一直想写写关于多线程的东西都没有准备好,今天这篇算是开篇吧!当然开篇都是最简单的东西,后边会陆续的写几篇关于多线程的应用的文章的。正文众所周知的是多线程的实现有两种方式方式一:继承Thread类的方式:创建一个继承于Thread类的子类重写Thread类的run() --> 将此线程执行的操作声明在run()中创建Thread类的子类的对象通过此对象调用start():①启动当前线程 ② 调用当前线程的run()方式二:实现Runnable接口原创 2020-06-30 19:49:55 · 1096 阅读 · 2 评论 -
tk.mybatis 中的通用Mapper自定义SQL语句
前言今天就是想写点什么,其实还有很多没写的东西呢!笔记里边好多东西都挺好的,经验加实践总结出来的。就是都没有系统的整理,至于原因吧,有很多,最重要的一点就是我有点懒。今天写个最简单的东西,现在的开发变的越来越简单了,因为有好多大牛写了好多好用的“轮子”!比如说tk.mybatis。用这个插件简单的项目根本就不用写SQL语句。下来看看怎么通过tk.mybatis自定义SQL语句。正文tk.mybatis自定义的SQL语句有两种写法,今天主要介绍一种。先说一下用tk.mybatis定义好的方法怎样去查原创 2020-06-29 11:20:16 · 7207 阅读 · 2 评论 -
Java基础——很少用的位运算符
前言今天突然有一个需求用到了位运算符,然后让我好好的回忆了一下java基础,说实话我真的把位运算符的相关方法忘的死死的。所以为了纪念逝去的时光,写下了这篇基础中的基础,也算是给自己提个醒要时不时的去回去看看基础,要不然都没有进步的空间了。正文基础的东西基本上都是看一眼就能想起来的。比如下边这一眼。位运算符的列表:名称符号左移<<空位补0,被移除的高位丢弃,空缺位补0。右移>>被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,空缺位原创 2020-05-21 21:19:26 · 705 阅读 · 1 评论 -
有关并行的几个重要概念
同步(synchronous)和异步(asynchronous)并发(Concurrency)和并行(Parallelism)临界区阻塞(Blocking)和非阻塞(Non-Blocking)锁(Deadlock)、饥饿(Starvation)和活锁(Livelock)并行的级别有关并行的几个重要定律Amdahl定律(阿姆达尔定律)Gustafson定律(古斯塔夫森)...原创 2019-11-14 20:56:03 · 1169 阅读 · 4 评论 -
IDEA中出现乱码的处理
前言IDEA运行一个新的项目时有可能会出现乱码,有的乱码是在控制台中出现的,有些乱码是在运行的界面中出现的,还有一些是在浏览器中出现的。总之有文字的地方就有乱码,那这些乱码怎么去解决呢?今天就来简单的介绍一下乱码的处理方法。正文在IDEA中就有几个固定的地方可以设定代码的类型,一般都是采用通用编码UTF-8乱码的出现其实跟编码的类型有很大的关系,解决乱码问题的标准就是要保证编码的一致性。...原创 2019-11-13 20:59:40 · 7386 阅读 · 10 评论 -
JAVA基础--语言特性
前言昨天跟同事聊天话题聊到了java语言的类型,有些人说是解释型语言,有人说是编译型语言。给我整的也很懵。所以今天就整理了一下思路。正文解释型语言先来说说解释型语言,什么是解释型语言呢?解释型语言就是先翻译成中间代码,再由解释器对中间代码进行解释运行。程序不需要编译,程序在运行时才翻译成机器语言,每执 行一次都要翻译一次。因此效率比较低。常见的解释型语言有:Python/JavaScr...原创 2019-11-12 20:42:48 · 427 阅读 · 7 评论 -
List表单数据读取
前言最近被一个简单的小问题给卡了一下,就是不读不出list中的数据了。现在把这个小问题给总结一下发出来,惊醒一下自己。正文前端是读取的Excel表格中的内容:程序中的数据结构是下边这个样子的:现在想要得到excel中“序号”的数据项。String x=excel.get(0).get(0).toString();这样的x中的数据就是需要的“序号”。结束其实有时候问不在大小...原创 2019-10-24 19:06:03 · 827 阅读 · 4 评论 -
IDEA中无法定位代码文件所在的程序目录结构
前言莫名其妙的问题。问题出现的过程,IDEA中正常打开的项目因为电脑卡了进行了误操作突然出现如下的不正常情况:各种查询都么有相关的错误解决办法。正文突然听同事说了一句看看项目的配置,然后就解决了问题然后参考这个图中的设置然后就可以了结尾路程很漫长,还有好多需要学习的,加油同志!...原创 2019-09-29 22:50:56 · 2302 阅读 · 6 评论 -
Windows 下安装并配置Maven
前言Maven 翻译为"专家",“内行”,是Apache下的一个纯Java开发的开源项目.Maven 是一个项目管理工具,可以对Java项目进行构建,依赖管理.Maven是基于项目对象模型(POM project object model),可以通过一小段描述信息(配置)来管理项目的构建,报告和文档的软件项目管理工具[百度百科]百度说的够专业的,不过理解起来可能有点小困难,通俗点说,就是通...原创 2019-06-07 20:51:52 · 8535 阅读 · 5 评论