不多说,直接上干货! HashMap  和  HashSet的区别是Java面试中最常被问到的问题.如果没有涉及到Collection框架以及多线程的面试,可以说是不完整.而Collection框架的问题不涉及到HashSet和HashMap,也可以说是不完整.HashMap和HashSet都是collection框架的一部分,它们是我们能够使用对象的集合.collection框架有自己的接口和实现,主要分为Set接口,List接口和Queue接口.它们有各自的特点,Set的集合里不允许对象有重…
不多说,直接上干货! 这篇我是从整体出发去写的. 牛客网Java刷题知识点之Java 集合框架的构成.集合框架中的迭代器Iterator.集合框架中的集合接口Collection(List和Set).集合框架中的Map集合 牛客网Java刷题知识点之Map的两种取值方式keySet和entrySet.HashMap .Hashtable.TreeMap.LinkedHashMap.ConcurrentHashMap .WeakHashMap 首先,HashMap不支持线程的同步. 同步,指的是在…
不多说,直接上干货! 这篇我是从整体出发去写的. 牛客网Java刷题知识点之Java 集合框架的构成.集合框架中的迭代器Iterator.集合框架中的集合接口Collection(List和Set).集合框架中的Map集合 接口java.util.Map,包括3个实现类:HashMap.Hashtable.TreeMap.当然还有LinkedHashMap.ConcurrentHashMap .WeakHashMap. Map是用来存储键值对的数据结构,键值对在数组中通过数组下标来对其内容索引的…
不多说,直接上干货! 这篇我是从整体出发去写的. 牛客网Java刷题知识点之Java 集合框架的构成.集合框架中的迭代器Iterator.集合框架中的集合接口Collection(List和Set).集合框架中的Map集合 List集合中子类 Vector.ArrayList.LinkedList List:有序, 可重复, 有索引.三者均为可伸缩数组. Vector:底层数据结构是数组结构. jdk1.0版本. 线程安全的. 无论增删还是查询都非常慢.默认扩充为原来的2倍. ArrayList…
不多说,直接上干货! 首先,大家要搞清楚,java里的内存是怎么分配的.详细见 牛客网Java刷题知识点之内存的划分(寄存器.本地方法区.方法区.栈内存和堆内存) 哪些内存需要回收 其实,一般是对堆内存而言的. 垃圾回收算法过程 在Java语言中,GC(Garbage Collection)是一个非常重要的概念.它主要是回收程序中不再使用的内存. 对对象而言,如果没有任何变量去引用它,那么该对象将不可能被程序访问,因此可以认为它是垃圾信息,可被回收.只要有一个以上的变量引用该对象,该对象就不会被…
不多说,直接上干货! 福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑         Java全栈大联盟        每天都有大量的学习视频资料和精彩技术文章推送... 人生不易,唯有努力.        百家号 :九月哥快讯               快手号:  jiuyuege         HashMap的实现原理 HashMap是基于java.util.map接口的实现,该实…
不多说,直接上干货! 福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑         Java全栈大联盟        每天都有大量的学习视频资料和精彩技术文章推送... 人生不易,唯有努力.        百家号 :九月哥快讯               快手号:  jiuyuege                 首先,对于什么是TCP协议,什么是UDP协议,以及具体的区别.我这里不多…
福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑         Java全栈大联盟        每天都有大量的学习视频资料和精彩技术文章推送... 人生不易,唯有努力.        百家号 :九月哥快讯               快手号:  jiuyuege   不多说,直接上干货! TCP和UDP是两个传输层协议,广泛应用于网络中不同主机之间传输数据.对任何程序员来说,熟悉TCP和…
不多说,直接上干货! 集合框架中包含了大量集合接口.这些接口的实现类和操作它们的算法. 集合容器因为内部的数据结构不同,有多种具体容器. 不断的向上抽取,就形成了集合框架. Map是一次添加一对元素.Collection是一次添加一个元素. iterator是迭代获取元素 第一大类:Iterator 迭代器是一个对象,它是遍历并选择序列中的对象. 说比了,就是给后面的Collection接口里的实现类使用搭配的,为了取值罢了.    Iterator 只能正向遍历集合,适用于获取移除元素. Li…
不多说,直接上干货! 先来看个泛型概念提出的背景的例子. GenericDemo.java package zhouls.bigdata.DataFeatureSelection; import java.util.ArrayList; import java.util.Iterator; public class GenericDemo { /** * @param args */ public static void main(String[] args) { ArrayList al =…
不多说,直接上干货! 什么是进程? 正在进行中的程序(直译). 什么是线程? 就是进程中一个负责程序执行的控制单元(执行路径). 见 牛客网Java刷题知识点之进程和线程的区别 什么是多线程? 一个进程中可以多执行路径,称之为多线程. 一个进程中至少要有一个线程. 开启多个线程是为了同时运行多部分代码. 每一个线程都有自己运行的内容.这个内容可以称为线程要执行的任务. 其实应用程序的执行都是cpu在做着快速的切换完成的.这个切换是随机的. 多线程的好处和弊端 多线程好处:解决了多部分同时运行的问…
不多说,直接上干货! 通过 牛客网Java刷题知识点之构造函数是什么.一般函数和构造函数什么区别呢.构造函数的重载.构造函数的内存图解 我们对构造函数有了一个比较清楚的认识,当我们在创建对象时,我们会调用构造函数.那么我们在定义和调用构造函数时,需要注意哪些细节呢? 牛客网Java刷题知识点之构造函数与set方法.与类名同名的一般方法.构造函数中有return语句   需要注意的细节:构造函数可以调用一般函数,但是一般函数不可以直接调用构造函数 class Person { private St…
不多说,直接上干货! 通过 牛客网Java刷题知识点之构造函数是什么.一般函数和构造函数什么区别呢.构造函数的重载.构造函数的内存图解 我们对构造函数有了一个比较清楚的认识,当我们在创建对象时,我们会调用构造函数.那么我们在定义和调用构造函数时,需要注意哪些细节呢? 需要注意的细节:构造函数与set方法 class Person { private String name; private int age; //构造函数,初始化name Person(String n) { name = n;…
不多说,直接上干货! 牛客网Java刷题知识点之关键字static static代表着什么 在Java中并不存在全局变量的概念,但是我们可以通过static来实现一个“伪全局”的概念,在Java中static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,当然也可以修饰代码块和内部类. Java把内存分为栈内存和堆内存,其中栈内存用来存放一些基本类型的变量.数组和对象的引用变量,堆内存主要存放一些引用类型的变量.在JVM加载一个类的时候,若该类存在static修饰的成员变量和成员方法…
不多说,直接上干货! https://www.nowcoder.com/ta/review-java/review?query=&asc=true&order=&page=20 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构.迭代器通常被称为“轻量级”对象,因为创建它的代价小. Java中的Iterator功能比较简单,并且只能单向移动(即只能前向遍历): (1) 使用方法iterator()要求容器返回一个Iterator.…
不多说,直接上干货! 扩展博客 牛客网Java刷题知识点之多线程同步的实现方法有哪些 为何要使用同步?      java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查),  将会导致数据不准确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被其他线程的调用,从而保证了该变量的唯一性和准确性.           什么是同步方法 ,什么是同步代码块? 用synchronized关键字修饰的方法. 用synchronized关键字修饰的语句块.  …
不多说,直接上干货! 前期博客 牛客网Java刷题知识点之四种不同的方式创建线程 这里很简单 首先,系统通过调用线程类的start()方法来启动一个线程,此时这个线程处于就绪状态,而非运行状态,也就意味着这个线程可以被JVM来调度执行. 然后,在这个调度执行过程中,JVM会通过调用线程类的run()方法来完成实际的操作,当run()方法结束后,此线程就会终止. 注意: 如果直接调用线程类的run()方法,会被当作一个普通的函数来调用.也就是说,start()方法能够异步地调用run()方法,但是…
不多说,直接上干货! 可以将一个类的定义放在另一个类的定义内部,这就是内部类. 内部类是一个非常有用的特性但又比较难理解使用的特性(鄙人到现在都没有怎么使用过内部类,对内部类也只是略知一二). 内部类我们从外面看是非常容易理解的,无非就是在一个类的内部在定义一个类. public class OuterClass { private String name ; private int age; public String getName() { return name; } public voi…
不多说,直接上干货! float类型数字在计算机中用4个字节存储. 遵循IEEE-754格式标准: 一个浮点数有2部分组成:底数m和指数e (1)底数部分 使用二进制数来表示此浮点数的实际值 (2)指数部分 占用8bit的二进制数,可表示数值范围为0-255 但是指数可正可负,所以,IEEE规定,此处算出的次方必须减去127才是真正的指数. 所以,float类型的指数可从-126到128 底数部分实际是占用24bit的一个值,但是最高位始终为1,所以,最高位省去不存储,在存储中占23bit 科学…
不多说,直接上干货! 福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑         Java全栈大联盟        每天都有大量的学习视频资料和精彩技术文章推送... 人生不易,唯有努力.        百家号 :九月哥快讯               快手号:  jiuyuege          OSI七层参考模型 应用层 为应用程序提供服务并规定应用程序中通信相关的细节.包括文件…
不多说,直接上干货! 福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑         Java全栈大联盟        每天都有大量的学习视频资料和精彩技术文章推送... 人生不易,唯有努力.        百家号 :九月哥快讯               快手号:  jiuyuege           内存溢出和内存泄漏的区别  内存泄漏指你用malloc或new申请了一块内存,但是没…
不多说,直接上干货! 福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑         Java全栈大联盟        每天都有大量的学习视频资料和精彩技术文章推送... 人生不易,唯有努力.        百家号 :九月哥快讯               快手号:  jiuyuege               什么是拥塞? 当大量的分组进入通信子网,超出了网络的处理能力时,就会引起网络…
不多说,直接上干货! 福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑         Java全栈大联盟        每天都有大量的学习视频资料和精彩技术文章推送... 人生不易,唯有努力.        百家号 :九月哥快讯               快手号:  jiuyuege             说简单点,就是,先对hashcode,然后对eauals. 以下是HashMap…
不多说,直接上干货! 把提高效率的动作,封装成一个对象.即把缓冲区封装成一个对象. 就是在一个类里封装一个数组,能对流锁操作数据进行缓存. 什么是字符流缓冲区? 善于使用字符流缓冲区,减轻负担,提高下效率. 其实啊,无非是将源中数据,存储到自定义数组里,进行缓存.并对数组操作,从而提高效率. 即BufferedReader 比 FileReader要增强.   BufferedWriter 比 FileWriter要增强. 什么情况下需要使用字符流缓冲区? 先从一个例子,来由浅入深的 为了提高写…
不多说,直接上干货! 首先来说一个非常形象的例子,来说明下数组和链表. 上体育课的时候,老师说:你们站一队,每个人记住自己是第几个,我喊到几,那个人就举手,这就是数组. 老师说,你们每个人记住自己前面的人和后面的人,然后老师只知道第一人是谁. 然后你们各自由活动,老师要找某一个人,是不是每次都是从第一个开始往自己身后的人开始传达?这就是链表. 老师说: 大家1,2,3,4报数,凡是报1,为1队,凡是报2的为2队.......  这就是散列(哈希).而这个4就相当于预定义好的桶的个数. 程序中,存…
不多说,直接上干货!  其中        1)程序计数器:用于指示当前线程所执行的字节码执行到了第几行,可以理解为当前线程的行号指示器.每个计数器志勇赖记录一个线程的行号,所以它是线程私有的.        2)虚拟机栈:一个线程的每个方法在执行的同时,会创建一个栈帧,栈帧中存储的有:局部变量.操作栈.动态链接.方法出口等.当方法被调用时,栈帧在JVM栈中入栈,方法执行完成时栈帧出栈.局部变量表中存储方法的相关局部变量,包括各种基本数据类型,对象引用,返回地址等.每个线程对应着一个虚拟机栈,因…
不多说,直接上干货! 获取文件名称.获取文件路径.获取文件大小.获取文件修改时间 FileMethodDemo.java package zhouls.bigdata.DataFeatureSelection.test; import java.io.File; import java.io.IOException; import java.text.DateFormat; import java.util.Date; public class FileMethodDemo { /** * @p…
不多说,直接上干货! CopyTextByBufTest.java package zhouls.bigdata.DataFeatureSelection.test; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.…
不多说,直接上干货! CopyTextTest.java package zhouls.bigdata.DataFeatureSelection.test; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; /* * 需求:作业:将c盘的一个文本文件复制到d盘. * * 思路: * 1,需要读取源, * 2,将读到的源数据写入到目的地. * 3,既然是操作文本数据,使用字符流. *…
不多说,直接上干货! IO流用来处理设备之间的数据传输. java对数据的操作是通过流的方式. java用于操作流的对象都在IO包中. IO流按操作数据分为两种:字节流和字符流. IO流按流向分为:输入流.输出流. 输入流和输出流 输入流做什么事: 将硬盘中的数据读出来,放到内存里去运算. 输出流做什么事:将内存中的数据,写到硬盘里去. 输入流和输出流相对于内存设备而言. 将外设中的数据读取到内存中:输入. 将内存的数写入到外设中:输出. 往内存里,就是输入流输入流做什么事: 将硬盘中的数据读出…