![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
不秃头的码农
大数据应用,数据结构与算法分析
展开
-
Java----面试中将用到的网络基础知识(3)
HTTP超文本协议 http(Hypertext transfer protocol)超文本传输协议,通过浏览器和服务器进行数据交互,进行超文本(文本、图片、视频等)传输的规定。也就是说,http协议规定了超文本传输所要遵守的规则。 特点 支持客户/服务器模式 简单快速 灵活 无连接 无状态(没有记忆能力) 请求/响应步骤 客户端连接到Web服务器 发送HTTP请求 服务器接受请求并返回HTTP请...原创 2019-08-18 23:04:37 · 112 阅读 · 0 评论 -
Java线程池
问题引入 重复创建和销毁线程的开销很大,可能会超过响应用户的时间 Java线程池创建方法 newFixedThreadPool(int N)N为线程数 newCachedThreadPool()处理大量短时间工作任务的线程池 1)试图缓存线程并重要,无缓存线程可用就创建新线程 2)如果系统闲置的时间超过阈值,则会被终止并移出缓存 3)如果长时间闲置的时候,不会消耗什么资源 newSingleTh...原创 2019-08-30 11:24:27 · 186 阅读 · 0 评论 -
进程与线程(操作系统+java)
进程和线程的由来 操作系统的特征:并发,共享,虚拟,异步 任务处理方式的历程:串行 》》 批处理 》》 进程 》》 线程 注: 并行:同一时刻运行 并发:同一段时间内同时运行 引入进程是为了更好地使多道程序并发执行,提高资源利用率和系统吞吐量(增加并发程度) 引入线程的目的是为了减少程序在并发执行时付出的时空开销(提高并发性能) 进程 所有与进程相关的资源,被记录在PCB中...原创 2019-08-28 21:52:42 · 373 阅读 · 0 评论 -
GC之垃圾收集器
JVM运行模式 Server (启动慢,稳定后快) Client 年轻代常见的垃圾收集器 Serial收集器(复制算法) 单线程收集,进行垃圾收集时,必须暂停所有的工作线程 简单高效,Cilent模式下默认的年轻代收集器 ParNew收集器(复制算法) 多线程收集,其余行为和Serial一样 单核执行效率不如Serial,再多核下执行才有优势 Parallel Scavenge收集器(复制算法...原创 2019-08-28 10:48:51 · 134 阅读 · 0 评论 -
Java垃圾回收机制(GC算法简述)
引用计数算法 判断对象的引用数量来决定对象是否可以被回收 每个对象实例都有一个引用计数器,被引用则+1,完成引用-1 任何引用计数为0的对象实例被当作垃圾 优点:执行效率高,程序执行受影响小 缺点:无法检测出循环引用的情况,导致内存泄漏 可达性分析算法 判断对象的引用链是否可达来决定对象是否可以被回收(理论基础:离散数学图论) 可以作为ROOT的对象 虚拟机栈中引用的对象 方法区中常量引用的...原创 2019-08-27 23:12:43 · 198 阅读 · 0 评论 -
Java之内存模型
操作系统之部分内存管理基本知识 内存管理的功能 内存空间的分配与回收 地址转换 内存空间扩充 存储保护 程序装入内存的过程 编译 链接(将编译后形成的目标模块与库函数链接) 装入(绝对装入【逻辑地址=实际地址】,可重定位装入【装入时进行地址转换】,动态重定位【执行时进行地址转换】) 扩充内存的技术 覆盖(同一进程,已淘汰) 交换(不同进程) 虚拟(虚拟内存最大容量与计算机地址位数相关)【...原创 2019-08-27 16:39:30 · 110 阅读 · 0 评论 -
Java之ClassLoader
ClassLoader 的作用 负责将 Class 加载到 JVM 中 审查每个类由谁加载(父优先的等级加载机制) 将 Class 字节码重新解析成 JVM 统一要求的对象格式 类的生命周期 ...原创 2019-08-26 22:44:44 · 132 阅读 · 0 评论 -
Java----面试中将用到的网络基础知识(2)
UDP 特点 面向非连接 不维护连接状态,支持同时向多个客户端传送相同的信息 数据包报头只有8个字节,额外开销小 吞吐量受限于数据生成速率,传输速率以及机器性能 尽最大努力交付(不保证可靠) 面向报文,不对报文信息进行合并和拆分 TCP和UDP的区别 (1)TCP面向连接,UDP面向非连接 (2)TCP可靠,UDP不可靠 (3)TCP有序(到达不一定有序,但最后会排序),UDP无序 (4) TC...原创 2019-08-17 21:05:59 · 105 阅读 · 0 评论 -
Java----面试中将用到的网络基础知识(1)
OSI七层网络模型 名称 功能 应用层(Application) 直接向用户提供服务,文件传输、电子邮件、文件服务、虚拟终端 表示层(Presentation) 数据格式化、代码转换、数据加密 会话层(Session) 在两个会话实体间建立和使用连接、解除连接 传输层(Transport) 提供可靠的端到端的差错和流量控制,保证报文的正确传输 网络层(Network...原创 2019-08-16 17:06:43 · 101 阅读 · 0 评论 -
Java-----面向面试每日刷10题(31-40)
31、遍历一个List有哪些不同的方式? 使用for-each循环,迭代器 使用迭代器更加线程安全,因为它可以确保,在当前遍历的集合元素被更改的时候,它会抛ConcurrentModificationException List<String> strList = new ArrayList<>(); //使用for-each循环 for(String obj : st...原创 2019-08-16 14:32:37 · 125 阅读 · 0 评论 -
Java-----面向面试每日刷10题(21-30)
21、面向对象和面向过程的区别 面向过程: 优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。 缺点:没有面向对象易维护、易复用、易扩展 面向对象: 优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护 缺点:性能...原创 2019-08-15 20:09:13 · 133 阅读 · 0 评论 -
数据结构笔记----哈希表及其在JAVA集合中的应用
哈希表(散列表)的基本概念 在线性表和数表中,记录在表中的位置和记录的关键字之间存在不确定关系,他们的查找基于“比较” 而哈希表是根据关键字直接访问的数据结构 它是一种高效的数据结构,其高效主要体现在把数据的存储和查找时间大大降低,几乎可以看成是常数时间,而代价是消耗比较多的内存,然而在硬件技术越来越发达的今天,用空间换时间的做法在某种意义上是值得的。另外,编码比较容易也是它的特点之一。 散列函数...原创 2019-08-14 21:50:51 · 222 阅读 · 0 评论 -
Java-----面向面试每日刷10题(11-20)
11、什么时候用断言(assert) 断言在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。一般来说,断言用于保证程序最基本、关键的正确性。断言检查通常在开发和测试时开启。为了保证程序的执行效率,在软件发布后断言检查通常是关闭的。断言是一个包含布尔表达式的语句,在执行这个语句时假定该表达式为true;如果表达式的值为false,那么系统会报告一个AssertionError。 12、...原创 2019-08-14 16:10:15 · 127 阅读 · 0 评论 -
Java-----面向面试每日刷10题(1-10)
1、面向对象的特征有哪些方面? 抽象,(继承,封装,多态) 抽象: 抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。 继承: 继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。 封装: 通常认为封装是把数据和操作数据的方法绑定起来,对数...原创 2019-08-13 22:56:44 · 163 阅读 · 0 评论 -
Java----面试中将用到的网络基础知识(4)
Socket 是对TCP/IP的抽象,是操作系统对外开放的接口 Socket练习:聊天室的实现原创 2019-08-18 23:22:04 · 119 阅读 · 0 评论 -
HashMap
HashMap的特点 HashMap基于Map接口实现,元素以键值对的方式存储 允许使用null键和null值,因为key不允许重复,因此只能有一个键为null HashMap不能保证放入元素的顺序,它是无序的,和放入的顺序并不能相同 HashMap是线程不安全的(多线程环境中推荐ConcurrentHashMap或者通过Collections类的静态方法synchronizedMap获得线程安...原创 2019-08-31 16:43:34 · 197 阅读 · 0 评论