java
文章平均质量分 55
ACMer_xbb
这个作者很懒,什么都没留下…
展开
-
javadoc 的注解
javadoc做注释 一. Java 文档 // 注释一行 /* ...... */ 注释若干行 /** ...... */ 注释若干行,并写入 javadoc 文档 通常这种注释的多行写法如下: /** * ......... * ......... */ javadoc -d 文档存放目录 -author -version 源文件名.ja转载 2016-02-18 09:00:16 · 555 阅读 · 0 评论 -
java基础知识学习-流
一、JAVA流式输入/输出原理流是用来读写数据的,java有一个类叫File,它封装的是文件的文件名,只是内存里面的一个对象,真正的文件是在硬盘上的一块空间,在这个文件里面存放着各种各样的数据,我们想读文件里面的数据怎么办呢?是通过一个流的方式来读,咱们要想从程序读数据,对于计算机来说,无论读什么类型的数据都是以010101101010这样的形式读取的。怎么把文件里面的数据读出来呢?你可以把文...转载 2019-03-21 21:48:43 · 498 阅读 · 1 评论 -
Java Collections Framework概览
概览容器,就是可以容纳其他Java对象的对象。Java Collections Framework(JCF)为Java开发者提供了通用的容器,其始于JDK 1.2,优点是:降低编程难度提高程序性能提高API间的互操作性降低学习难度降低设计和实现相关API的难度增加程序的重用性Java容器里只能放对象,对于基本类型(int, long, float, double等),需要将其包...转载 2019-03-18 20:46:43 · 143 阅读 · 0 评论 -
java网络编程 - IP和java.net.InetAddress类的使用
一:IP1、地址格式互联网上每一台计算机都有一个唯一标示自己的标记,这个标记就是IP地址。IP 地址使用32 位长度二进制数据标示,一般在实际中看到的大部分IP地址都是以十进制的数据形式标示的,如:192.168.1.3,IP地址格式如下:IP 地址 = 网络地址 + 主机地址网络号:用于识别主机所在的网络主机号:用于识别网络中的主机2、地址分类IP地址按照数字区域,分为5类,如下所...转载 2019-03-26 12:57:48 · 425 阅读 · 0 评论 -
java网络编程 - NetworkInterface
一、问题提出在使用 Java 开发网络程序时,有时候我们需要知道本机在局域网中的 IP 地址。很常见的一种做法是调用本地命令(比如 Windows 上的 ipconfig 命令和 Linux 上的 ifconfig 命令),接着解析本地命令的输出,最后得到本机在局域网内的 IP 地址。很明显,这种做法不够方便,也不够 Java。于是引出了 Java 在 JDK1.4 的时候添加的一个类: Net...原创 2019-03-26 21:24:15 · 585 阅读 · 0 评论 -
java之hashmap
心得:相较于JDK 1.7,Java 8中的HashMap有了较大的性能提升。修改了hash和resize方式,增加了红黑树的支持。 学习参考资料: (1)Java HashMap的死循环; 1. HashMap要点 (1)结构特点:Java中的HashMap是基于“数组+链表”的方式(链表法解决冲突),到了Java 8,应该是“数组+链表/红黑树”的方式。 (...转载 2019-04-25 13:03:43 · 183 阅读 · 0 评论 -
ThreadGroup解读
ThreadGroup解读ThreadGroup 可以把thread的名字统一起来。一起处理catch。ThreadGroup是Java提供的一种对线程进行分组管理的手段,可以对所有线程以组为单位进行操作,如设置优先级、守护线程等。线程组也有父子的概念,如下图:线程组的基本操作1.1 线程组的创建public class ThreadGroupCreator { ...转载 2019-07-22 12:21:46 · 286 阅读 · 0 评论 -
线程池之ThreadPoolExecutor概述
线程池之ThreadPoolExecutor概述1、为什么需要线程池1.1 减少线程创建的损耗假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线程中执行任务的时间,T3 销毁线程时间。如果:T1 + T3 远大于 T2,则可以采用线程池,以提高服务器性能。线程池技术正是关注如何缩短或调整T1,T3时间的技术,从而提高服务器程序性能的。它把T1,T3分别安排在服务器程序...原创 2019-07-22 23:37:15 · 175 阅读 · 0 评论 -
java基础之位运算
java中位运算^,&,<<,>>,>>>总结1.^(亦或运算) ,针对二进制,相同的为0,不同的为1public static void main(String[] args) { System.out.println("2^3运算的结果是 :"+(2^3)); //打印的结果是: 2^3运算的结果是 :1}2 ==...原创 2019-09-17 12:29:48 · 181 阅读 · 0 评论 -
java基础之锁
1、自旋锁2、自旋锁的其他种类3、阻塞锁4、可重入锁5、读写锁6、互斥锁7、悲观锁8、乐观锁9、公平锁10、非公平锁11、偏向锁12、对象锁13、线程锁14、锁粗化15、轻量级锁16、锁消除17、锁膨胀18、信号量...原创 2019-09-17 12:45:52 · 189 阅读 · 0 评论 -
java.util.ConcurrentModificationException 异常问题详解
环境:JDK 1.8.0_111在Java开发过程中,使用iterator遍历集合的同时对集合进行修改就会出现java.util.ConcurrentModificationException异常,本文就以ArrayList为例去理解和解决这种异常。一、单线程情况下问题分析及解决方案1.1 问题复现先上一段抛异常的代码。public void test1() { Arr...转载 2018-10-17 13:07:21 · 1431 阅读 · 2 评论 -
Java中的break,continue关于标签的用法
java中的标签Java的控制循环结构中是没有关键字goto的,这种做法有它的好处,它提高了程序流程控制的可读性,但是也有不好的地方,它降低了程序流程控制的灵活性,所以说,“上帝是公平的”。所以,Java为了弥补这方面的不足,Java提供了break和continue的标签用法。Java中的标签就是一个紧跟着“:”的标识符。与其他语言不通,Java语言的标签必须放在循环前面才有作用。下面就来看一...原创 2018-10-18 20:50:59 · 7181 阅读 · 1 评论 -
jvm -- classLoader
一、什么是ClassLoader? 大家都知道,当我们写好一个Java程序之后,不是管是CS还是BS应用,都是由若干个.class文件组织而成的一个完整的Java应用程序,当程序在运行时,即会调用该程序的一个入口函数来调用系统的相关功能,而这些功能都被封装在不同的class文件当中,所以经常要从这个class文件中要调用另外一个class文件中的方法,如果另外一个文件不存在的,则转载 2018-01-16 12:37:00 · 268 阅读 · 0 评论 -
java之JDK代理
JDK动态代理[1]—-代理模式实现方式的概要介绍 日常工作中经常会接触到代理模式,但一直没有对其进行深究。代理模式一直就像一团迷雾一样存在我心里,什么是代理模式?为什么要使用代理?代理模式有哪些实现?它的底层机制是怎样的?这些问题促使着我迫切想要揭开代理模式的神...转载 2018-07-05 19:30:49 · 1029 阅读 · 0 评论 -
Java反射中method.isBridge() 桥接方法
Java反射中method.isBridge() 桥接方法桥接方法是 JDK 1.5 引入泛型后,为了使Java的泛型方法生成的字节码和 1.5 版本前的字节码相兼容,由编译器自动生成的方法。我们可以通过Method.isBridge()方法来判断一个方法是否是桥接方法。假定接口public interface SuperClass<T> { void meth...转载 2018-07-30 23:54:41 · 1318 阅读 · 2 评论 -
java并发之 CopyOnWriteArrayList的原理和使用方法
描述CopyOnWriteArrayList:CopyOnWriteArrayList这是一个ArrayList的线程安全的变体,其原理大概可以通俗的理解为:初始化的时候只有一个容器,很常一段时间,这个容器数据、数量等没有发生变化的时候,大家(多个线程),都是读取(假设这段时间里只发生读取的操作)同一个容器中的数据,所以这样大家读到的数据都是唯一、一致、安全的,但是后来有人往里面增加了一个数据...转载 2018-08-09 21:00:22 · 275 阅读 · 0 评论 -
java 并发 之 Interrupt()
interrupt简述interrupt() 方法只是改变中断状态而已,它不会中断一个正在运行的线程。这一方法实际完成的是,给受阻塞的线程发出一个中断信号,这样受阻线程就得以退出阻塞的状态。 更确切的说,如果线程被Object.wait, Thread.join和Thread.sleep三种方法之一阻塞,此时调用该线程的interrupt()方法,那么该线程将抛出一个 InterruptedE...转载 2018-08-12 22:21:05 · 198 阅读 · 0 评论 -
java 并发之CountDownLatch
概述CountDownLatch是一个用来控制并发的很常见的工具,它允许一个或者多个线程等待其他的线程执行到某一操作,比如说需要去解析一个excel的数据,为了更快的解析则每个sheet都使用一个线程去进行解析,但是最后的汇总数据的工作则需要等待每个sheet的解析工作完成之后才能进行,这就可以使用CountDownLatch。使用例子: 这里有三个线程(main,thread1...转载 2018-08-12 22:58:54 · 148 阅读 · 0 评论 -
java 并发之 Semphore
简介Semaphore(信号量)是用来控制同时访问特定资源的线程数量,它通过协调各个线程,以保证合理的使用公共资源。很多年以来,我都觉得从字面上很难理解Semaphore所表达的含义,只能把它比作是控制流量的红绿灯,比如XX马路要限制流量,只允许同时有一百辆车在这条路上行使,其他的都必须在路口等待,所以前一百辆车会看到绿灯,可以开进这条马路,后面的车会看到红灯,不能驶入XX马路,但是如果前一百...转载 2018-08-22 13:32:39 · 228 阅读 · 0 评论 -
java 并发之CyclicBarrier
什么是CyclicBarrier可以理解为循环栅栏,栅栏就是一种障碍物.假如我们将计数器设置为10,那么凑齐第一批10个线程后,计数器就会归零,然后接着凑齐下一批10个线程,这就是循环栅栏的含义. 构造器:public CyclicBarrier(int parties, Runnable barrierAction) { if (parties <= 0) thr...转载 2018-08-23 22:24:41 · 136 阅读 · 0 评论 -
java 并发之LockSupport
LockSupportLockSupport提供park()和unpark()方法实现阻塞线程和解除线程阻塞,实现的阻塞和解除阻塞是基于”许可(permit)”作为关联,permit相当于一个信号量(0,1),默认是0. 线程之间不再需要一个Object或者其它变量来存储状态,不再需要关心对方的状态.wait()和notify()、notifyAll()的比较public stat...原创 2018-08-29 20:16:15 · 216 阅读 · 0 评论 -
java 线程之线程状态
java线程状态1. 初始(NEW):新创建了一个线程对象,但还没有调用start()方法。2. 运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取CPU的使用权,此时处于就绪状态(read...转载 2018-09-02 16:30:20 · 185 阅读 · 0 评论 -
java基础之ShutdownHook
一、什么是ShutdownHook?在Java程序中可以通过添加关闭钩子,实现在程序退出时关闭资源、平滑退出的功能。使用Runtime.addShutdownHook(Thread hook)方法,可以注册一个JVM关闭的钩子。这个钩子可以在以下几种场景被调用程序正常退出使用System.exit()终端使用Ctrl+C触发的中断系统关闭使用Kill pid命令干掉进程Run...转载 2019-09-25 13:02:59 · 656 阅读 · 0 评论