javaweb验证码实现(jsp)

首先放上javaweb的目录结构:生成验证码的jsp文件【validate.jsp】 <% response.setHeader("Cache-Control", "no-cache"); int width=60,height=20; BufferedImage bufferedImage=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB); Graphics graphics=bufferedImage.getGraphics(); graphics.setColor(new Color(200,200,200))

更多相关内容:请点击查看

java不允许未经定义的常量直接出现在代码中

不是报错,只是soanrqube检测觉得这样子不规范,这个也是阿里巴巴java编程手册中的一个规定,里面说法是不允许使用魔法值 java中,在使用sonarqube的时候,string类型的代码不允许直接使用未经定义的常量,什么是未经定义的产量呢?下面举个例子: //这个会报未经定义的常量 String value = "常量";一开始想到的解决方案是改成下面这个: //这样子就是定义了这个变量了,sonarqube也没有报错了 String value = new String("常量");但是里面有一个问题,那就是浪费内存。 浪费内存是,里面有两个对象,String

java接口与抽象类异同分析

在java中,通常初学者搞不懂接口与抽象类,这也是面试比较容易问到的一个问题。下面我来谈谈自己的理解。如有不妥之处,还望批评指正,不胜感激。1.抽象类我们定义一个抽象类person.class表示人://使用关键字abstractpublic abstract class person { //吃东西的抽象方法,已经有所实现 public void eat(){ System.out.println("我是抽象方法吃东西"); } //public 修饰的空实现的方法 public void run(){} //无修饰,空实现 void walk(){} //protected修饰的方法

java native关键字干什么用的?

今天一不小心跟进Object的源码中,发现一个native关键字,一脸蒙蔽,怎么我从来没有用过。// 这是计算对象的hsahcode的方法,涉及到内存地址public native int hashCode();1.汇编生c,c生万物,其实java要实现对底层的控制,还是需要c/c++帮忙,老大毕竟是老大。2.native关键字我们开发应用的时候是用不到的,那什么时候用到呢?那些开发java语言的时候用到,native关键字是与c++联合开发的时候使用的,要不java控制不了底层啊,比如内存。所以还是那句:汇编生c,c生万物,c++是c的升级版。3

Java的四个基本特征(抽象,封装,继承,多态)

java的四个基本特征是很容易开始面试的点,如果问的是三大属性,那么是封装,多态,继承,如果问的是四大特征,那么分别是抽象,封装,多态,继承。1.抽象抽象:将相同的类的共同特征总结出来,构造成类的过程。包括数据抽象以及行为抽象。数据抽象变成类的成员变量,行为抽象变成类的成员函数。抽象只关心成员变量以及成员函数,并不关系具体的实现细节。下面是Person.class,表示与人类相关的数据以及各种活动,只列举部分的属性以及行为。public class Person{ // 年龄(数据抽象) public int age; // 名字(数据抽象) public String name

java集合梳理【1】— 从集合接口框架说起

文章目录(一) java集合分类1. 内部定义的方法2. Collection接口 extend Iterable1.1 iterator方法1.2 forEach方法1.3 spliterator方法2.2.1 List extend Collection2.2.2 Set extend Collection2.2.3 Queue extend Collection2.1 内部定义的方法2.2 继承Collection的主要接口(1) Iterable接口(2) Map接口(二)总结(一) java集合分类之前大概分为三种,Set,List,Map三种,JDK5之后,增加Queue

java集合梳理【2】— 浅谈iterable接口

文章目录iterable接口1.1 iterator()方法1.2 forEach()方法1.3 spliterator()方法1. 内部定义的方法总结iterable接口整个接口框架关系如下(来自百度百科):iterable接口其实是java集合大家庭的最顶级的接口之一了,实现这个接口,可以视为拥有了获取迭代器的能力。Iterable接口出现在JDK1.5,那个时候只有iterator()方法,主要是定义了迭代集合内元素的规范。 实现了Iterable接口,我们可以使用增强的for循环,即for(String str : lists){ System.out.println(str); }1

java集合梳理【3】— 浅谈iterator接口

文章目录一、`iterator`接口介绍二、为什么需要iterator接口三、iterator接口相关接口3.2.1 SpitIterator源码方法解析3.2.2 SpitIterator里面哪些特征常量有什么用呢?3.1 ListIterator3.2 SpitIterator四、 iterator在集合中的实现例子4.1 iterator在ArrayList的实现4.2 iterator在HashMap的实现五、总结一、iterator接口介绍iterator接口,也是集合大家庭中的一员。和其他的Map和Collection接口不同,iterator 主要是为了方便遍历集合中的所有元素

java集合梳理【5】— Collection接口详解

文章目录一、Collection接口简介二、Collection源码分析三、Collection的子类以及子类的实现3.1 List extend Collection3.2 Set extend Collection3.3 Queue extend Collection四、Collection和Map的辨析五、Collection和Collections的辨析六、总结一、Collection接口简介collection在java集合中,算是顶级接口,它继承了iterable接口,不能实例化,只能实例化其子类。之所以需要这样一个接口,是因为java作为面向对象,总是避免不了处理多个对象的情况

java集合梳理【6】— Collections接口源码解析

文章目录一、Collections接口是做什么的?二、Collections源码之大类方法1.提供不可变集合2、提供同步的集合3、类型检查4.提供空集合或者迭代器5.提供singleton的集合或者迭代器三、从源码看其他常用方法1. Sort(排序)2. binarySearch(二分搜索)3. reverse(反转)4. Shuffling(混排)5. 交换(swap)6. 拷贝(copy)7. 返回最小的元素(min)8. 返回最大的元素(max)9. 旋转(Rotate)10. 替换所有元素(replaceAll)11.填充所有的元素(fill)12.查找子序列的索引位置