java基础
Hollake
这个作者很懒,什么都没留下…
展开
-
java web上传下载文件模块
基于java web的文件上传下载工具初步构想是实现从页面选择上传路径,若不选择,则上传到默认路径,选择上传的文件,点击上传,上传成功。下载同理,若失败,跳转到提示失败的页面。本项目解决了中文乱码问题完整项目链接:https://github.com/Hollake/summit_file建议直接下载项目进行实操,注意需要自己更换默认路径等,不更换必须填写路径上传界面示意图下载界面示意图文件上传代码其思想为从页面获取表单数据,获得文件等相应信息,进行读取上传。原创 2020-12-26 10:29:25 · 499 阅读 · 1 评论 -
Socket通信case---Java
使用Socket实现客户端和服务器端的通信,要求客户端发送数据后能够回显相同的数据。服务器端:import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocke...原创 2019-07-16 10:51:31 · 207 阅读 · 0 评论 -
自己实现简单版ArrayList
这里只是主要写了ArrayList在添加元素时的核心,就是扩容,如果数组空间不足那就扩容到原来的1.5倍,调用Arrays.copyOf()方法将旧数组中的元素复制到新数组中。下面是代码实现以及测试,很简单很简单,很多地方没有进行条件判断等等,详细实现还是看源码或者这两篇文章:https://www.cnblogs.com/ygj0930/p/5965205.htmlhttps://...原创 2019-06-17 17:33:15 · 406 阅读 · 0 评论 -
Servlet处理客户端请求过程
前言由于Servlet没有main函数,运行在容器中,所以整个生命周期由容器控制。具体可以分为5个状态:加载,容器通过类加载器来加载Servlet。 创建,通过Servlet构造方法创建Servlet对象。 初始化,调用Servlet的init()方法,进行初始化工作,注意,只初始化一次。 处理客户端请求。容器在接到客户端请求时,都会创建一个新的线程,通过调用Servlet的serv...原创 2019-06-13 15:35:56 · 2638 阅读 · 0 评论 -
Java很简单的死锁例子
Java死锁常见原因这里说一下简单的两个线程死锁案例,线程1先拿到了a锁,在没有释放a锁的情况下想要拿b锁,而线程2正好相反,在没有释放b锁的情况下想要去拿a锁,所以两个线程就处于阻塞状态,都在等待对方释放锁,这就造成了死锁。看下面这个简单例子,很简单,线程1拿到a锁后睡眠了5ms,接着去拿b锁,线程2拿到b锁后睡眠了5ms,接着去拿a锁,所以目前的状态就是,线程1在等b锁,线程2在等a锁...原创 2019-05-07 17:27:21 · 1095 阅读 · 0 评论 -
重写与重载的区别---Java
每次复习完过一段时间就忘,感觉脑子秀逗了一样,可能还是理解的不够深刻,总结记录一下重载(Overloading):存在于一个类中 同名不同参的方法,那么就成为重载,不同参的意思是(参数个数不同、参数类型不同、参数顺序不同) 记住和返回值没有半毛钱关系,爱返回什么就返回什么,只要满足前两条就是重载。重写(Overriding):存在于父类和子类之间 父类和子类中重写的方法必须同名...原创 2019-04-23 22:12:05 · 261 阅读 · 0 评论 -
二叉树深度,二叉树按层打印-java实现
二叉树深度实现 对于非递归实现如下:首先,利用按层遍历的思想,设置level记录当前节点所在层数,再设置当前节点指针cur以及每层的节点总数last。在遍历 每层节点时,cur置零,遍历到cur = last时结束,level+1,继续遍历下一层。 具体实现算法如下: 二叉树数据结构public class TreeNode { int val = 0;...原创 2019-04-18 14:05:44 · 1033 阅读 · 0 评论 -
HashMap源码学习笔记(jdk1.8)
注释很详细,一定能看懂给大家一个建议,可以通过对源码打断点debug进行学习,还有源码中的注释真的很重要本文主要讲述HashMap的get、put、resize方法、HashMap与HashTable的区别、HashMap1.7和1.8的区别。首先看一下HashMap的基础属性,接着学习一下hashMap的get、put以及resize方法。基础属性: // 默认的初始...原创 2019-04-26 16:21:53 · 230 阅读 · 0 评论 -
Java深拷贝和浅拷贝详细解释(深克隆和浅克隆)
Java中创建对象有两种方式:通过new操作符创建一个对象 通过clone方法来复制一个对象 使用反序列化来创建一个对象 通过使用Class类的newInstance方法来创建一个对象 使用Constructor类的newInstance方法来创建一个对象第一种方法,通过new操作符来创建一个对象,分配内存,调用构造函数来填充各个域,这是我们最熟悉的;第二种clone也是分配内存,分...原创 2018-11-17 18:04:45 · 649 阅读 · 0 评论 -
深入理解Java动态绑定与静态绑定
动态绑定以下是我的理解,可能和其他大佬们的理解略有偏差,如有想法不同的或者有错误的地方欢迎您指出来,谢谢先上代码:public class Father { public void f() { System.out.println("Father method"); } public static void main(Str...原创 2018-11-17 13:31:48 · 320 阅读 · 1 评论