随笔分类 - Java 基础
Java 基础 数据结构 类的相关知识
摘要:在Spring Security之前 我曾经使用 实现了一个简单网站Demo的登录拦截和Session处理工作,虽然能够实现相应的功能,但是无疑Spring Security提供的配置方法更加简单明确,能够更好的保护Web应用。 Spring Security的相关结构 这里大家可以参考Spring
阅读全文
摘要:NIO的前世今生 NIO又叫NonBlockingI/O,即非阻塞I/O。以此对应的,有一个更常见的IO(BIO),又叫Blocking I/O,即阻塞IO,两种都为Java的IO实现方案。 NIO/BIO 阻塞与非阻塞 以客户端连接服务器为例,服务器需要获取客户端的连接,即Socket,传统I/O
阅读全文
摘要:最近做的一个项目需要在服务端对连接端进行管理,故将方案记录于此。 方案实现的结果与背景 因为服务端与客户端实现的是长连接,所以需要对客户端的连接情况进行监控,防止无效连接占用资源。 完成类似于心跳的接收以及处理 即: 当连接过长事件(keep-alive Time)没有发送新的消息时,则在服务端切断
阅读全文
摘要:最近在做一个有关TCP/TP通信的消息解析,涉及到了这方面的转换,记录一下。 首先,如果是在网络传输、消息解析的情况下,要注意一下网络传送使用的是大端还是小端模式,这影响到我们的高低位的传输顺序。 WORD&&DWORD WORD: 无符号双字节整形(字,16位) DWORD:无符号四字节整形 (双
阅读全文
摘要:基本思路 1.如果其中一个数组的元素均大于另一个数组的元素,则可以直接组合,不用拆分。 即:其中一个数组的第一个元素大于或者小于另一个数组的最后一个元素 2.若不满足1中的情况,则表明数组需要拆分,拆分的方法如下: (1)拆分前,默认两个数组以及最终输出数组的索引均为0; (2)将 两个数组 对应索
阅读全文
摘要:定时闹钟预览版EXE下载链接:https://files.cnblogs.com/files/rekent/ReadytoRelax_jar.zip 功能说明: 实现了一个休息提醒器,用户首先设定一个倒计时时间(HH:MM:SS),每走完这个时间便会弹出提醒,让用户停止工作,起身休息。 休息回来工作
阅读全文
摘要:想必很多朋友都实现过一个简易的聊天室这个功能,其中涉及到Socket套接字这个类,我们通过一个特定的IP以及特定的端口创建一个服务端的套接字(ServerSocket),以此我们聊天个体的套接字(Socket)再与其连接,从而实现连通并通过流来传递信息的聊天室功能。 而端口扫描器所用的知识体系也是基
阅读全文
摘要:我们参考下面这个例子: 读者可以提前考虑一下,这段程序的输出会是什么。 最后的输出结果为 初次分析 可见,当我们试图构造一个B时,应该会优先构造B的父类A,所以会调用父类A的构造函数A(),所以会输出 这时A调用了draw()方法,因为是构造B类,而B类覆盖重写A类的draw()方法,所以这里应该调
阅读全文
摘要:通过Session来存储用户的部分登陆信息来验证用户是否在线,这应该时最容易实现的一种Web端方案,本文以SSM(Spring、SpringMVC、myBatis)框架为载体,来具体实现这套登陆系统。 1.通过前端传递用户名密码到后端接口,接口拿到值后,对其进行MD5加密,与数据库中的字段进行比较,
阅读全文
摘要:总所周知,Java提供了访问权限修饰词,以供类库开发人员向客户端程序员指明哪些是可用的,哪些是不可用的。 访问权限控制的等级,从最大权限到最小权限依次为:public、protected、包访问权限(没有关键词)和 private 。 对于类(Class) 类既不可以是private的(这样会使得除
阅读全文
摘要:问题 之前在开发过程中,遇到了一点问题,我要访问一个FTP服务器去下载文件详细情况如下: 1. 需要传入一个可能为中文的文件名; 2. 通过文件名去FTP上寻找该文件; 3. FTP服务器的命名编码为“GBK”; 思路 1.通过GET方法直接将文件名负载URL后面,但需要通过转码; 2.在Java
阅读全文
摘要:Java 垃圾回收机制在我们普通理解来看,应该视为一种低优先级的后台进程来实现的,其实早期版本的Java虚拟机并非以这种方式实现的。 先从一种很简单的垃圾回收方式开始。 引用计数 引用计数是一种简单但是速度很慢的垃圾回收技术。 每个对象都含有要给引用计数器,当有引用连接至对象时,引用计数+1。 当引
阅读全文
摘要:SpringMVC主要有三个核心部分组成,DispatcherServlet、Controller、ViewResolver。 DispatcherServlet: 请求输入时:类似于一个带分配功能的Filter,其直接与前端交互,并截所有符合 url-pattern 的请求,并根据Mapping路
阅读全文
摘要:有些知识点可能平时一直在使用,不过实际开发中我们可能只是知其然不知其所以然,所以经常的总结会对我们的提高和进步有很大的帮助,这里记录自己在工作之余的问题,持续更新,欢迎高手斧正. 数组、List和ArrayList的区别 数组在内存中是连续存储的,所以它的索引速度是非常的快,而且赋值与修改元素也很简
阅读全文
摘要:TCP/UDP 协议 通俗解释: TCP协议和UDP协议的区别类似于电话系统和邮政系统。 <1>TCP:类似于电话系统,建立双向的通信通道,确定连接,话音顺序接听。 <2>UDP:类似于邮政系统,发送方将信件发送到正确的地址,但并不知道准确的邮路,大多数邮件到达了目的地,个别情况一些邮件会在路上丢失
阅读全文
摘要:线程池的实现 组成 一个比较简单的线程池至少应包括 线程池管理器:创建、销毁并管理线程池,将工作线程放入线程池中; 工作线程:一个可以循环执行任务的线程,在没有任务时进行等待; 任务队列:提供一种缓冲机制,将没有处理的任务放在任务队列中; 任务接口:每个任务必须实现的接口,主要用来规定任务的入口、任
阅读全文
摘要:题目 二叉树的前序以及后续序列,以空格间隔每个元素,重构二叉树,最后输出二叉树的三种遍历方式的序列以验证。 输入: 1 2 3 4 5 6 7 8 9 10 3 2 5 4 1 7 8 6 10 9 输出: 1,2,3,4,5,6,7,8,9,10 3,2,5,4,1,7,8,6,10,9 3,5,
阅读全文
摘要:转载自http://ocaicai.iteye.com/blog/1047397 大二下学期学习数据结构的时候用C介绍过二叉树,但是当时热衷于java就没有怎么鸟二叉树,但是对二叉树的构建及遍历一直耿耿于怀,今天又遇见这个问题了,所以花了一下午的时间来编写代码以及介绍思路的文档生成! 目录: 1.把
阅读全文
摘要:关于栈 栈(Stack)是限定只能在一段进行插入和删除操作的线性表。 进行插入和删除操作的一端称为“栈顶”(top),另一端称为“栈底”(bottom)。 栈的插入操作称为“入栈”(push),栈的删除 操作称为“出栈”(pop)。 栈具有后进先出(LIFO),先进后出(FILO)的特性。 Java
阅读全文
摘要:问题描述: 输入样例:1 2 3 4 5 6 输出样例:1 2 3 4 5 6 不定长度,数据之间以空格间隔,以回车键结束输入。 解决误区: 前期解决问题,一直在考虑想通过Scanner类来获取到‘\n’来跳出输入循环 通过几次尝试,发现用next()方法并不能获取到所想要获取的东西。 后期方案:
阅读全文

浙公网安备 33010602011771号