![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 85
wintershii
越努力越幸运
展开
-
java.lang.Thread
java.lang.Thread位于java.lang包下的Thread是非常重要的线程类,它实现了Runnable接口。本篇文章围绕Thread具体介绍一下Java线程的概念和Thread类中常用的方法1.线程的状态线程从创建到最终的消亡, 要经历若干个状态。一般来说,线程包括以下几个状态:创建(new), 可运行(runnable), 阻塞(blocked), time waiting,...原创 2019-10-16 19:15:54 · 1422 阅读 · 0 评论 -
Java—String类型及编译器优化
Java—String类型及编译器优化我们先来看一道题目:public class StringTest{ public static void main(String[] args){ String str = "xiyou" + "3g" + "backend"; String str2 = "xiyou3gbackend"; ...原创 2018-08-06 20:03:10 · 891 阅读 · 0 评论 -
Java—NIO
Java—NIO#### NIO既被人称为New IO,也被人称为Non-blocked IO(非阻塞式),不管名字叫什么,我们都要了解它的特性和用法 JDK1.4引入了NIO这个库,NIO和IO有相同的作用和目的,但实现方式不同1.为什么要使用NIO? 传统IO是基于字节的,所有IO都被视为单个字节的移动,而NIO是基于块的,每次移动一大块数据,所以性能肯定优于IO...原创 2018-08-02 21:22:41 · 312 阅读 · 0 评论 -
Java—反射基础
Java—反射1.反射概述JAVA反射机制实在运行状态中,对于任意一个类,都能知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及调用对象的方法的功能称为java的反射机制要想解剖一个类,必须要先获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法,所以要先获取到每一个字节码文件所对应的Class类型的对象那么,反...原创 2018-08-02 21:24:08 · 502 阅读 · 0 评论 -
Java—内部类详解
Java—内部类详解1.内部类简介在Java中,可以将一个类定义在另一个类或者方法里面,这样的类称之为内部类。广泛意义上的内部类一般包括这四种:成员内部类,局部内部类,匿名内部类和静态内部类。我们就先来了解一下这四种内部类的用法。 内部类是一种编译器现象,与虚拟机无关。编译器会把内部类翻译成用$(美元符号)符号分隔外部类名与内部类名的常规类文件,而虚拟机对此一无所知2.四...原创 2018-08-17 11:24:34 · 194 阅读 · 0 评论 -
Java集合源码—LinkedList
LinkedList源码分析1.LinkedList概述LinkedList底层是一个双链表(非循环), 是一个直线型的链表结构因为实现方式是链表, 所以在插入或删除时的效率较高, 但是因为其内存空间并不一定连续, 遍历时需要从头到尾访问一遍, 所以查找的效率并不是很高public class LinkedList<E> extends AbstractSequen...原创 2019-08-03 11:54:01 · 107 阅读 · 0 评论 -
Java集合源码—ArrayList
ArrayList源码分析1.ArrayList概述ArrayList是Java中常用的集合之一, 其底层实现是数组.因为数组在内存空间中是连续的, 所以他的特点就是查找数据快, 但因为插入和删除元素都需要移动其他元素的位置, 所以插入和删除会慢一些. 另外, ArrayList是可以动态增长和缩减的索引序列.public class ArrayList<E> extends A...原创 2019-08-01 19:37:32 · 130 阅读 · 0 评论 -
Java集合源码—HashMap
HashMap源码分析1.概述HashMap是一种基于哈希算法的散列查找集合.其实现方式主要是数组+链表. 其存储键值对, 并根据键的哈希值作运算进行键值对的存储和查询. 当一个键的hash值与另一个键的hash值做运算后得到的在数组中位置相同, 这就说明出现了"哈希冲突", 所以采用链表, 将他们链成一条链表. 当这个链表长度过长时, 就会将该链表转化为红黑树提高性能而HashMap的内部...原创 2019-08-09 15:51:03 · 167 阅读 · 0 评论 -
Java并发—锁
Java中的锁1.Lock接口锁是用来控制多个线程访问共享资源的方式, 一般来说, 一个锁能够防止多个线程同时访问共享资源(但是有些锁可以允许多个线程并发的访问共享资源, 比如读写锁). 在Lock接口出现之前, Java程序是靠synchronized关键字来实现锁功能的, 它提供了和synchronized关键字类似的同步功能, 只是在使用时需要显示的获取和释放锁. 虽然它缺少了隐式获取释...原创 2019-08-15 09:00:39 · 271 阅读 · 0 评论 -
Java并发—ConcurrentHashMap
Java并发容器—ConcurrentHashMap1.JDK1.7版本 jdk1.7的实现结构图如下所示[外链图片转存失败(img-Fy93gKVd-1566009849146)(/home/shidongxuan/.config/Typora/typora-user-images/1566002052129.png)]CurrentHashMap是由Segment数组和HashEnt...原创 2019-08-17 10:44:25 · 165 阅读 · 0 评论 -
Java并发—Executor框架
Executor框架在Java中, 使用线程来异步执行任务. Java线程的创建与销毁需要一定的开销, 如果我们为每一个任务创建一个新线程来执行, 这些线程的创建与销毁将消耗大量的计算资源. 同时, 为每一个任务创建一个新线程来执行, 这种策略可能会使处于高负荷的应用最终崩溃.1.Executor框架简介1>Executor框架的两级调度模型在HotSpot VM的线程模型中, Ja...原创 2019-09-07 18:28:29 · 215 阅读 · 0 评论 -
Java—应用栈结构实现计算器
Java—应用栈结构实现计算器我们在小学学数学的时候,老师总是强调:先乘除,后加减,从左算到右,先括号内后括号外,这个都大家都不陌生。但我们的计算机又怎么记住这些规则呢?答案是不行的,但是我们可以把我们的表达式表示成一种计算机可以识别的表达式,这就是要说的后缀(逆波兰)表达式1.后缀表达式的计算例如:9+(3-1)3+10/2 这样的式子,用后缀表达式是这样的:9 3 1...原创 2018-08-14 11:12:09 · 6507 阅读 · 3 评论 -
C语言与java中函数传参比较
C语言与java中函数传参比较首先先说结论:C语言中参数传递有值传递,地址传递,引用传递。但java中的参数传递只有值传递1.C语言中的参数传递1&gt;值传递值传递非常好理解,其实就是对函数所传入的实参进行了一次拷贝,虽然传入函数的值与原来的实参是相等的,但是在内存中却占据着不同的地址,所以在函数中对其进行操作也只是在新的内存地址上进行操作,并不会影响到原来的值。为了...原创 2018-08-06 14:25:16 · 1575 阅读 · 3 评论 -
Java—抽象类与接口
Java—抽象类与接口在说抽象类与接口之前,我想先介绍抽象方法:这种方法仅有声明而没有方法体。例如:abstract void f();包含抽象方法的类叫做抽象类。如果一个类包含一个或多个抽象方法,该类必须被限定为是抽象的(否则编译器会报错)。与之对应,接口中的每一个方法都只是一个声明,这是编译器所允许的在接口中唯一能存在的事物。1.抽象类(abstract class...原创 2018-06-03 21:41:33 · 471 阅读 · 0 评论 -
Java—泛型中的通配符
通配符类型通配符有 3 种形式&lt; ? &gt; 被称作无限定的通配符。&lt; ? extends T&gt; 被称作有上限的通配符。&lt; ? super T&gt; 被称作有下限的通配符。1&gt;无限定通配符public void testWildCards(Collection&lt;?&gt; collection){原创 2018-07-26 10:13:31 · 671 阅读 · 1 评论 -
Java—泛型
泛型 使用泛型机制编写的程序代码要比那些杂乱地使用Object变量,然后再进行强制类型转换的代码具有更好的安全性和可读性使用泛型之前,ArrayList类只维护一个Object引用的数组,这导致获取一个值时必须进行强制类型转换可以向数组列表中添加任何类的对象 JAVA SE 7 后 构造函数中可以省略泛型类型类型参数的好处:使得程序具有更好的可读性和安...原创 2018-07-26 10:24:08 · 858 阅读 · 0 评论 -
Java—I/O
Java—IO1. IO: java的IO是实现输入和输出的基础,可以方便地实现数据的输入和输出操作。在java中把不同的输入/输出源(键盘,文件,网络连接等)抽象的表述为 “流”(Stream)。通过流的形式允许java程序使用相同的方式来访问不同的输入/输出源。2.IO分类:1> 按流向分:输入流,输出流输入流:只能从中读取数据,不能写入数据输出流,只能向...原创 2018-07-30 11:09:14 · 1221 阅读 · 1 评论 -
Java—简易聊天室
Java—聊天室的实现在学习了IO流,多线程以及网络编程的知识之后,我们可以利用所学到的知识做一个小项目,这里我做了一个多人聊天室,实现了群聊和私聊功能,看完分享之后也可以自己去做一个练练手。首先是整个项目的大体架构:首先要分为服务器端和客户端两个端口。如下图所示客户端可以向服务器发送信息,并接受服务器返回的信息。而服务器实际上是作为一个中转站:在群聊模式时,将一个客户...原创 2018-07-27 09:38:23 · 10192 阅读 · 6 评论 -
Java—异常机制
Java—异常机制1.简介程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?或者用C语言风格:用函数返回值作为执行状态?。Java提供了更加优秀的解决办法:异常处理机制。异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理逻辑,针对性地处理异常,让程序尽最大可能恢复正常并...转载 2018-08-04 10:08:56 · 328 阅读 · 0 评论 -
Java—JDK,JRE和JVM
JDK,JRE和JVM首先是JDK - JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)。在JDK的安装目录下有一个jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib合起来就称为jre。然后我们来看JREJRE(Java Runtime Enviro...转载 2018-08-04 10:22:05 · 324 阅读 · 0 评论 -
Java—集合排序
Java——集合的排序&lt;一&gt;接口comparable与接口comparator的比较1&gt; ComparableComparable是在集合内部定义方法实现的排序,位于java.util包下。是一个对象本身就已经支持自然比较所需要实现的接口。例如String,Interger自己就实现了Comparable接口,并且重写了compareTo方法,可以完成比较...原创 2018-07-27 20:09:38 · 5094 阅读 · 0 评论 -
Java—集合
集合 在编程中,常常需要存放多个数据。从传统意义上讲,数组是我们一个很好的选择,前提是我们事先已经明确知道我们要保存的对象的数量。一旦在数组初始化时制定了这个数组长度,这个数组长度就是不可变的,如果我们需要保存一个可以动态增长的数据(在编译时还无法确定具体的数量),java的集合类就是一个很好的设计方案 集合类主要负责保存,盛装其他数据,因此集合类也被称为容器类。所有的集合类都位...原创 2018-07-27 20:14:33 · 326 阅读 · 0 评论 -
Java—文件相关操作
Java—文件相关操作在学习了File,IO的知识之后,可以做一些小程序来对本地文件进行操作。在这里我列举了几个例子:1. 打印文件夹的结构及内部文件内容 2. 复制文件夹到其他路径 3.文件的合并及分裂1.树状文件表只是大体实现类似于操作系统下文件管理器的那种树状表,没有伸缩打开功能,只是显示文件名和所在层次。 从控制台读入文件路径,然后打印出来。之后每深入一个层次,文件或文...原创 2018-07-27 21:16:36 · 365 阅读 · 1 评论 -
Java—重写与重载的区别
Java—重写与重载的区别这几周开始看Java的知识,发现有一个有趣的现象就是,前两天刚看过的知识点,过一天又忘掉了。而且很多东西堆在脑子里像浆糊一样。所以边学习边总结是很重要的,今天想写一篇关于重写和重载的博客,为什么?因为面试会问啊,这是基础中比较重要的地方,但我百度了几篇博客之后发现写的都差强人意,各有缺点,但是!!访问量都特别高,所以我决定自己好好总结一篇自己的博客,也算是给自己的学习...原创 2018-06-03 18:22:24 · 225133 阅读 · 50 评论