Java笔记
ZhangYuanhao_1995
头像即本人第二身份
展开
-
mybatis动态sql中foreach标签的使用
foreach标签主要用于构建in条件,他可以在sql中对集合进行迭代。如下: <delete id="deleteBatch"> delete from user where id in <foreach collection="array" item="id" index="index" open="(" close=")" separator=","> #{id} </foreach> </delete&转载 2021-02-24 15:58:24 · 305 阅读 · 0 评论 -
JAVA8新特性下的接口和抽象类的异同
首先是相同的地方:1.接口和抽象类都能定义方法和属性。2.接口和抽象类都被看作是一种特殊的类。大部分的时候,定义的方法要子类来实现3.接口和抽象类都可以不含有抽象方法。接口没有方法就可以作为一个标志。比如可序列化的接口Serializable,没有方法的接口称为空接口。没有抽象方法的抽象类,笔者暂时不知道有什么用,但也可以通过编译。4.接口和抽象类都不能创建对象。5接口和抽象类都能利用多态性原理来...原创 2018-04-01 16:43:06 · 230 阅读 · 0 评论 -
深入理解Java:SimpleDateFormat安全的时间格式化
想必大家对SimpleDateFormat并不陌生。SimpleDateFormat 是 Java 中一个非常常用的类,该类用来对日期字符串进行解析和格式化输出,但如果使用不小心会导致非常微妙和难以调试的问题,因为 DateFormat 和 SimpleDateFormat 类不都是线程安全的,在多线程环境下调用 format() 和 parse() 方法应该使用同步代码来避免问题。下面我们通过一转载 2018-03-11 00:22:24 · 149 阅读 · 0 评论 -
Java中引入内部类意义
1.完善多重继承C++作为比较早期的面向对象编程语言,摸着石头过河,不幸的当了炮灰。比如多重继承,Java是不太欢迎继承的。因为继承耦合度太高。比如你是一个人,你想会飞,于是就继承了鸟这个类,然后你顺便拥有了一对翅膀和厚厚的羽毛,可这些玩意你并不需要。所以Java发明了接口,以契约的方式向你提供功能。想想看,你的程序里成员变量会比函数多吗?况且多重继承会遇到死亡菱形问题,就是两个父类有同样名字的函...转载 2018-03-02 02:00:25 · 461 阅读 · 0 评论 -
java实现的快速排序算法
快速排序(Quicksort)是对冒泡排序的一种改进。快速排序的原理:选择一个关键值作为基准值。比基准值小的都在左边序列(一般是无序的),比基准值大的都在右边(一般是无序的)。一般关键值选择数列的第一个元素。一次循环:从后往前比较,用基准值和最后一个值比较,如果比基准值小,交换位置;如果没有,继续比较下一个,直到找到第一个比基准值小的值才交换。找到这个值之后,再从前往后开始比较,如果有比基...转载 2018-02-13 02:44:14 · 222 阅读 · 0 评论 -
java实现的冒泡排序算法
冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。也就是双重循环就可以搞定的问题但是需要注意下一边界算法步骤:1)比较相邻的元素。如果第一个比第二个大,...转载 2018-02-03 19:12:11 · 239 阅读 · 0 评论 -
java单例模式中饿汉式与懒汉式
单例模式用途:单例模式属于工厂模式的特例,只是它不需要输入参数并且始终返回同一对象的引用。单例模式能够保证某一类型对象在系统中的唯一性,即某类在系统中只有一个实例。它的用途十分广泛,打个比方,我们开发了一个简单的留言板,用户的每一次留言都要将留言信息写入到数据库中,最直观的方法是没次写入都建立一个数据库的链接。这是个简单的方法,在不考虑并发的时候这也是个不错的选择。但实际上,一个网站是并发...转载 2018-01-23 00:46:26 · 1212 阅读 · 0 评论 -
Java中Scanner类的next()和nextLine()区别
next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。简单地说,next()查找并返回来自此扫描器的下一个完整标记。完整标记的前后是与分隔模式匹配的输入信息,所以next方法不能得到带空格的字符串。转载 2017-12-29 22:57:02 · 167 阅读 · 0 评论 -
匿名内部类学习小案例
先定义一个接口:123456package com.java1234.chap03.sec16; public interface A { public void a();}在定义一个具体实现类:1转载 2018-01-14 18:35:59 · 463 阅读 · 0 评论 -
Java中的equals和==区别总结
1)对于==,如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等; 如果作用于引用类型的变量,则比较的是所指向的对象的地址。2)对于equals方法,注意:equals方法不能作用于基本数据类型的变量; 如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址; 诸如String、Date等类对equals方法进行了重写的话转载 2018-01-12 01:06:28 · 176 阅读 · 0 评论 -
data-toggle与data-target是什么作用
Q:网上复制这样一句代码Sign In这样子 超链接不成功去掉data-toggle="modal" data-target="#signin-signup-tab"这部分 链接就可用了这是为什么?A:因为Bootstrap为这些元素都绑定上了事件,而终止了链接默认行为,你可以看看Bootstrap的文档,data-toggle指以什么事件触发,常用的转载 2017-11-16 19:39:31 · 6460 阅读 · 0 评论 -
java中几种Map在什么情况下使用,并简单介绍原因及原理
一、Map用于保存具有映射关系的数据,Map里保存着两组数据:key和value,它们都可以使任何引用类型的数据,但key不能重复。所以通过指定的key就可以取出对应的value。Map接口定义了如下常用的方法:1、void clear():删除Map中所以键值对。2、boolean containsKey(Object key):查询Map中是否包含指定key,如果包含则返回true。3、boo...转载 2018-03-29 01:03:33 · 310 阅读 · 0 评论 -
抽象方法用哪些修饰符修饰?
问:抽象的(abstract)方法是否可同时是静态的(static),是否可同时是本地方法(native),是否可同时被synchronized修饰? 答:实例说明:public abstract class Demo {int a;public Demo(int a) {this.a = a;}public abstract static voi转载 2018-04-04 17:53:57 · 5734 阅读 · 0 评论 -
IDEA里jsp项目中连接数据库解决java.lang.ClassNotFoundException: com.mysql.jdbc.Driver的问题
报错:java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver今天在做jsp连接数据库操作时,一直报加载不了驱动的错误,代码检查了很久都没错,重新导jar包也不行。最后对比了下eclipse里的位置,原来是我把jar包放错了位置,应该放在WEB-INF中的lib下,而我放在了WEB下的lib中。然后劈里啪啦操作一番,成功啦~!单独测试...原创 2019-09-12 22:36:23 · 1296 阅读 · 0 评论 -
开发中容易造成内存泄漏的操作
建议:1.在实际开发中,经常会造成系统的崩溃。如下四种情况最容易造成内存泄漏: 创建大量无用对象 比如,我们在需要大量拼接字符串时,使用了String而不是StringBuffer。String str = " "; for (int i = 0; i < 10000; i++) { str += i; //相当于产生了10000个String对象} 静...转载 2019-03-25 19:00:10 · 320 阅读 · 0 评论 -
Java实现的二分查找算法
二分查找又称折半查找,它是一种效率较高的查找方法。折半查找的算法思想是将数列按有序化(递增或递减)排列,查找过程中采用跳跃式方式查找,即先以有序数列的中点位置为比较对象,如果要找的元素值小 于该中点元素,则将待查序列缩小为左半部分,否则为右半部分。通过一次比较,将查找区间缩小一半。 折半查找是一种高效的查找方法。它可以明显减少比较次数,提高查找效率。但是,折半查找的先决条件是查找表中的数据元素必...转载 2019-02-12 14:43:40 · 924 阅读 · 0 评论 -
打印九九乘法表(用循环嵌套实现)
public class 打印九九乘法表用循环嵌套实现 { public static void main(String[] args) { for (int i = 1; i <= 9; i++) { for (int j = 1; j <= i; j++) { System.out.print(j+"*"+i+"="+i*j+" "); } Syst...原创 2019-02-10 15:56:41 · 2409 阅读 · 0 评论 -
打印实心菱形
public class 打印实心菱形 { public static void main(String[] args) { for (int i = 1; i <= 3; i++) { for (int j = i; j <3; j++) { System.out.print(" "); } for (int k = 1; k <=2*i-1; ...原创 2019-02-09 22:43:52 · 262 阅读 · 0 评论 -
Java 创建对象的几种方式
我们总是讨论没有对象就去new一个对象,创建对象的方式在我这里变成了根深蒂固的new方式创建,但是其实创建对象的方式还是有很多种的,不单单有new方式创建对象,还有使用反射机制创建对象,使用clone方法去创建对象,通过序列化和反序列化的方式去创建对象。这里就总结一下创建对象的几种方式,来好好学习一下java创建对象的方式。一、使用new关键字这是我们最常见的也是最简单的创建对象的方式...转载 2018-06-01 20:10:10 · 142 阅读 · 0 评论 -
java中this关键字用法
一、this关键字主要有三个应用: (1)this调用本类中的属性,也就是类中的成员变量; (2)this调用本类中的其他方法; (3)this调用本类中的其他构造方法,调用时要放在构造方法的首行。Public Class Student { String name; //定义一个成员变量name private void SetName(String name) { /...转载 2018-05-30 19:17:02 · 126 阅读 · 0 评论 -
java面向对象的有序数组和无序数组的比较
package aa;class Array{ //定义一个有序数组 private long[] a; //定义数组长度 private int nElems; //构造函数初始化 public Array(int max){ a = new long[max]; nElems = 0; } //s...转载 2018-05-14 15:44:25 · 965 阅读 · 0 评论 -
FileInputStream 与 BufferedInputStream 的区别和效率对比
FileInputStream与BufferedInputStream区别:BufferedInputStream是套在某个其他的InputStream外,起着缓存的功能,用来改善里面那个InputStream的性能(如果可能的话),它自己不能脱离里面那个单独存在。FileInputStream是读取一个文件来作InputStream。所以你可以把BufferedInputStream套在转载 2018-05-05 16:01:15 · 7122 阅读 · 2 评论 -
java中可变对象与不可变对象
可变对象(mutable Objects),不可变对象(Immutable ojbects),那么他们有什么区别呢?不可变对象意味着这个对象是final的,对象中所有的公共属性是final的。同时说明这个对象是线程安全的,这意味着他们可以在多线程中使用,而不需要使用synchronization。可变对象和不可变对象相反,java中大部分都是可变对象。不可变对象转载 2018-03-29 16:13:12 · 641 阅读 · 0 评论 -
接口和抽象类有什么区别
你选择使用接口和抽象类的依据是什么?接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……),他们的抽象类是人。说明,他们都是人。人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它.所以,在高级语言上,一个类只能继承一个类(转载 2017-07-18 22:16:34 · 189 阅读 · 0 评论 -
什么是HOOK技术
HOOK技术:在windows系统下编程,应该会接触到api函数的使用,常用的api函数大概有2000个左右。今天随着控件,stl等高效编程技术的出现,api的使用概率在普通的用户程序上就变得越来越小了。当诸如控件这些现成的手段不能实现的功能时,我们还需要借助api。最初有些人对某些api函数的功能不太满意,就产生了如何修改这些api,使之更好的服务于程序的想法,这样api hook就自然而然的出转载 2017-07-13 13:54:17 · 898 阅读 · 0 评论 -
避免这些坑,让你快速找到好工作
文/Tom Tan一.简历石沉大海今天有一个朋友,跟我诉苦,他说最近在找工作,投了一些简历,等了好几天都没有公司约他面试。然后我问他怎么样投的简历。 他说通过招聘网站,打开招聘信息,觉得合适就投简历。 我接着问,这几天总共投了多少份? 他说20多份....。应聘这件事,是双方的,你觉得你自己很牛叉,你觉得你很适合眼前的公司,但可能你在别人眼里,什么都不是。只有通过大量群发简转载 2017-04-02 11:17:01 · 425 阅读 · 0 评论 -
报错 Could not retrieve transation read-only status server
解决MysqlCannot get a connection, pool error: Could not create a validated object, Could not retrieve transation read-only status server可能是你的 mysql 的驱动包的问题。我今天使用了最新的mysql的驱动包版本号转载 2017-03-31 14:50:57 · 772 阅读 · 0 评论 -
easyui datagrid fitColumns:true失效解决办法
easyui datagrid fitColumns配置设置为true时,但是数据列并没有自动填充满datagrid指定的宽度,出现这个问题,是因为你的所有列配置都没有指定width属性,导致datagrid不会重新计算列宽度,所以列宽取列标题宽度或者此列内容宽度的最大值。 datagrid fitColumns配置为true后,是依据配置列width,和datagrid的指定widt转载 2017-03-29 16:31:49 · 23353 阅读 · 1 评论 -
《CRM客户管理系统》 2017.3.28 5:30pm事故文档
事故描述事故原因解决方案事故一:项目正常加载到tomcat后网页访问提示404 项目并未真正加载到服务器1.右击项目——>run as——>run on server2.再打开的弹窗中,点localhost下拉框,选中下面的tomcat,然后点击finish。 3.重新加载项目到服务器,运行测试。原创 2017-03-29 14:04:04 · 417 阅读 · 0 评论 -
java框架组合ssm和ssh各自的优势是什么?
ssm和ssh说白了就是m和h的区别 用最通俗易懂的话说,就是m是h的缩减版。就是说m种包含的内容是一些开发项目中比较常用的。而h算是完整版,包含了更多的内容,可以说h比m的内容多太多了。如果项目比较小,那么用m是比较好的,轻量级,速度快,效率高。如果是大型项目,必选h。转载 2017-03-27 21:42:16 · 11765 阅读 · 0 评论 -
HTML中th和td区别
很多人想问在HTML中和标签都是用于单元格内容显示的,那么有什么区别呢? 下面我们将用实例和代码来演示。由此可见,和标签都是用于表格单元格显示的。不同的是在单元格中加粗显示。:定义表格内的表头单元格。此th元素内部的文本通常会呈现为粗体。请注意:在 HTML 4.01 中,th元素的 "bgcolor"、"height"转载 2017-03-27 18:54:12 · 24781 阅读 · 0 评论 -
springmvc和struts2是什么类型的框架?
1:spring3 mvc开发效率高于struts2:spring3 mvc可以认为已经100%零配置3:struts2是类级别的拦截, 一个类对应一个request上下文,springmvc是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应所以说从架构本身上 spring3 mvc就容易实现restful url 而struts2的架构实现起来要费劲因为stru转载 2017-03-27 17:03:53 · 1289 阅读 · 0 评论 -
java中的POJO是什么意思?
简单的Java对象(Plain Ordinary Java Objects)实际就是普通JavaBeans,使用POJO名称是为了避免和EJB混淆起来, 而且简称比较直接. 其中有一些属性及其getter setter方法的类,有时可以作为value object或dto(Data Transform Object)来使用.当然,如果你有一个简单的运算属性也是可以的,但不允许有业务方法,也不能携带有转载 2017-03-09 09:54:39 · 2446 阅读 · 0 评论 -
M12D15css 常用样式
html的基础标签 p h1br dl p hr h1 dd li 块级标签 a img i b strong input 行级标签 display:block 设置元素的属性为显示display:none; 树没了 坑也没了 visibility:visible 设置元素为可见 visibility:hidden 树没了 坑还在 整个html文件看原创 2016-12-15 19:48:15 · 287 阅读 · 0 评论 -
M12D12WEB前端笔记(王)
Document 3/10 <img src="C:\Users\Administrator.admin1606270907\Desktop\DCIM\P60827-161658.jpg" width="500" height="350" border="0" alt="" usemap="#one"><!-- 映射关系的实现 map:双标签原创 2016-12-14 18:00:22 · 315 阅读 · 0 评论 -
AngularJs轻松入门(一)创建第一个应用
AngularJS是Google工程师研发的一款JS框架,官方文档中对它的描述是,它是完全使用JavaScript编写的客户端技术,同其他历史悠久的Web技术(HTML,CSS等)配合使用,使得Web开发变得更简单、更高效。它是笔者用过的比较有特色的一款框架,以HTML作为模版语言并扩展HTML属性,使得应用组件开发保持高度的清晰和一致。本系列文章將以实际的案例简单的介绍AngularJs的特性和转载 2017-03-26 23:24:57 · 327 阅读 · 0 评论 -
https工作原理
HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据1. 客户端发起HTTPS请求这个没什么好说的,就是用户在浏览器里输入一个https网址,然后连接到server的443端口。2. 服务端转载 2017-04-12 14:31:01 · 274 阅读 · 0 评论 -
什么是SOAP?
SOAP简单对象访问协议(Simple Object Access Protocol) 简单对象访问协议。(SOAP)是一种轻量的、简单的、基于 XML 的协议,它被设计成在 WEB 上交换结构化的和固化的信息。 SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议( HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调转载 2017-07-13 11:44:18 · 1257 阅读 · 0 评论 -
JavaScript:为什么函数声明后可以不加分号而函数表达式后要加分号呢?
function functionName(arg0,arg1,arg2){//函数声明}var functionName=function(arg0,arg1,arg2){//函数表达式};(注意分号)这两个都可以不加分号。。。。函数声明不加分号是应该的,因为}就是一条完整语句的结束符。你加个分号,最多只相当于多了一条没有任何代码的语句,空的。而函数表转载 2017-07-11 15:13:07 · 6064 阅读 · 0 评论 -
java中paint()的具体用法(说具体点 一起重写之后的问题 还有有关调用问题)
这个方法需要注意的地方不多,也就是重写时,先调用 super.paint(g) 方法paint方法不需要编写代码调用,只需要重写。其他看jdk帮助中就行了。public void paint(Graphics g) { super.paint(g);// 调用父类的paint方法或调用下面的方法直接绘制组件 g.drawImage(image, 0, 0, null);转载 2017-06-09 09:25:53 · 6377 阅读 · 0 评论