自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (1)
  • 收藏
  • 关注

原创 转发和重定向的过程和区别

转发 req.getRequestDispatcher("/要跳转的地址").forward(req, resp);转发的过程:(以servlet和jsp为例)浏览器首先发送一个请求到服务器端,服务器端发现匹配的 servlet,并指定它去执行,当这个 servlet 执行完之后,它要调用getRequestDispacther()方法,把请求转发给指定的jsp页面,整个流程都是在服务器...

2019-10-22 09:13:15 12697 10

原创 Cookie和Session的底层实现原理

一、CookieCookie的特性:会话数据保存在浏览器客户端Cookie的底层实现原理:1)服务器创建cookie对象,把会话数据存储到cookie对象中。 new Cookie("name","value");2)服务器发送cookie信息到浏览器 response.addCookie(cookie);3)浏览器从响应头中得到服务器发送的C...

2019-10-19 14:31:36 9094 9

原创 Java面试之String、StringBuffer和StringBuilder的区别和原理

首先我们先来谈谈String:String对象一旦创建,其值是不能修改的,如果要修改,会重新开辟内存空间来存储修改之后的对象,即修改了String的引用。因为String的底层是用数组来存值的,数组长度不可改变这一特性导致了上述问题。‌如果我们在实际开发过程中需要对某个字符串进行频繁的修改,使用String就会造成内存空间的浪费,应该怎样解决这个问题呢?‌答案就是可...

2019-10-17 13:33:59 11167 2

原创 防止非法链接(Referer)

什么是Referer?Referer是header的一部分,当浏览器向服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器借此可以获得一些信息用于处理。什么是非法链接?1)直接访问资源(Referer=null)2)B网站盗用A网站的资源怎样防止非法链接?写一个过滤器 获取每次请求头中的Referer 然后判断Referer中的来源值...

2019-10-27 21:00:02 4800 1

原创 深入理解Servlet

1、Servlet : 用java语言编写的动态资源开发技术。2、Servlet 特点:1)普通的java类,继承HttpServlet类,覆盖doGet、doPost等方法。2)Servlet类只能交给tomcat服务器运行。3、怎样使用Eclipse开发Servlet?1)编写一个servlet类,继承HttpServletpublic class Servlet e...

2019-10-25 09:36:39 11438 15

原创 单例模式之懒汉式和饿汉式

什么是单例模式?单例模式就是在JVM中一个对象只能有一个实例。单例模式有七种写法,常见的单例模式有两种:懒汉式、饿汉式什么是懒汉式?就是需要的才会去实例化,线程不安全。什么是饿汉式?就是当class文件被加载的时候就已经初始化,天生线程安全。懒汉式写法/** * 保证这个类在JVM中只有一个实例化对象 */class Singleton{ private ...

2019-10-24 09:04:46 3203 2

原创 LeetCode70—爬楼梯

题目描述:假设你正在爬楼梯。需要 n阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶...

2019-10-18 23:14:01 1650

原创 LeetCode319—灯泡开关

题目描述:初始时有 n 个灯泡关闭。 第 1 轮,你打开所有的灯泡。 第 2 轮,每两个灯泡你关闭一次。 第 3 轮,每三个灯泡切换一次开关(如果关闭则开启,如果开启则关闭)。第 i 轮,每 i 个灯泡切换一次开关。 对于第 n 轮,你只切换最后一个灯泡的开关。 找出 n 轮后有多少个亮着的灯泡。示例:输入: 3输出: 1解释:初始时, 灯泡状态 [关闭, 关闭, 关闭]....

2019-10-16 17:04:45 2741

原创 LeetCode192——Nim 游戏

题目描述:你和你的朋友,两个人一起玩 Nim 游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。示例:输入: 4输出: false解释: 如果堆中有 4 块石头,那么你永远不会赢得比赛;因为无论你拿走 1 块、2 块 还是 ...

2019-10-15 14:10:30 1981

原创 Java面试题(基础篇)

1、JDK和JRE有什么区别?JDK:Java 的开发工具包,提供了 Java 的开发环境和运行环境JRE:Java 的运行环境,为 Java 的运行提供了所需环境具体来说:JDK 其实包含了 JRE,同时还包含了编译 Java 源码的编译器 ,还包含了很多 Java 程序调试和分析的工具。简单来说:如果你需要运行 Java 程序,只需安装 JRE 就可以了,如果你需要编写 Jav...

2019-10-15 13:17:54 5664 1

原创 LeetCode75——颜色分类

给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]进阶: 一个直观的解决方案是使用计数排序的两趟扫...

2019-10-14 11:42:39 1779

原创 LeetCode11——盛最多水的容器

给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为(i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且n的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水...

2019-10-14 11:15:33 1910

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除