java
小菜虾
爱的就是技术,不要再怀疑
展开
-
Java EE学习笔记之——局部变量和成员变量的区别
局部变量:就是方法中定义的变量或者{}中定义的变量。 成员变量:类中定义的属性变量。它们的区别:代码中的位置不同:局部变量在方法中或者在{}中。物理(内存)位置不同:局部变量存放在栈中,成员变量存放在堆中。存在周期不同:局部变量取决于在栈里的周期,成员变量取决于在堆里的周期。初始化赋值不同:局部变量初始化后需要赋值,成员变量初始化后默认赋值。原创 2016-11-11 21:20:01 · 272 阅读 · 0 评论 -
Java读写文件
目录需求代码需求有个100万行的错误日志,且异常信息种类不多,但是重复的比较多,要求统计具体方法在哪种异常信息出现了多少次。因为某种异常中可能出现这个方法,也可能不出现,所以利用notepad++统计就不好使了,思来想去只有利用文件读写操作,来解决这个问题了。代码日志文件中每一个异常开头都是日期,格式为YYYY-MM-DD,所以决定利用日期来分割异常,代码如下。public class ...原创 2019-04-30 18:04:36 · 113 阅读 · 0 评论 -
Spring面向切面编程
概述传统的面向切面编程,是通过动态代理的模式,底层使用反射。但是这种方式,代码写死了,想要更改功能,就得更改源码。而Spring给我们提供了非常好的解决方案,通过配置XML文件,实现切面功能的可插拔,也就是说,我们不用管代码,只需要更改配置文件就能实现功能的扩展。别的不多说,直接进入主题。增强类package com.gwx.aspect;/** * 作者:Alvin * 日期:2017年2月原创 2017-02-28 11:37:48 · 256 阅读 · 0 评论 -
JDBC连接数据库操作(三)
利用前两篇的知识,写一个综合的小案例,实现对数据库的增删查改。表的结构数据库名为day12表名为person 表有两列,列名分别是id和name代码import java.sql.ResultSet;import java.util.Scanner;import com.mysql.jdbc.Connection;import com.mysql.jdbc.PreparedStat原创 2016-11-25 22:13:52 · 393 阅读 · 0 评论 -
JDBC连接数据库操作(二)
上篇讲了如何连接数据库,这篇讲述一下数据库的增删查改。准备工作操作数据库需要数据库语句,如果不了解,可以百度一下。这里把代码体现出来的基本语句列举出来,简单的说一下。插入数据:insert into [table_name]([field1],[field2]...) values([val1], [val2]...);更改数据:update [table_name] set [field]=[va原创 2016-11-25 21:55:27 · 298 阅读 · 0 评论 -
JDBC连接数据库操作(一)
准备工作下载安装好数据库——本文以MySql为例。下载mysql-connector-java-X.X.X-bin.jar——以5.1.22为例开发环境——myeclipse 2014导入jar包在项目文件下新建一个名为lib的文件夹,把jar包放进lib。单击鼠标右键——》Build Path——》Add to Build PathOK成功导入jar包。编程工作注册驱动 Clas原创 2016-11-24 23:28:05 · 270 阅读 · 0 评论 -
Java EE学习笔记之——流的操作规律
IO的操作种类繁多,怎么知道什么时候用那个呢?首先我们明确一个问题,读和写是对谁而言的。因为在input和output中,很容易就不知道是谁对谁了。 我一向喜欢把内存作为参考物,从内存中出去我就理解为output,进入内存我就理解为input。如果说你仔细看IO流的命名的时候也会发现,命名者也是吧内存作为参考物: OutputStream ----->输出流,从内存出去 Inpu原创 2016-11-19 22:31:27 · 432 阅读 · 0 评论 -
Java EE学习笔记之——类的总结
普通的类:一个Java文件里面只能有public类。修饰符 class 类名 { 修饰符 属性 修饰符 方法}抽象类:如果类里面有抽象方法,那么这个类就是抽象类。什么是抽象方法?抽象方法就是没有 函数体的的方法。abstract class 类名 { 修饰符 属性 public abstract 返回类型 方法名(); }你会看到抽象类前面都有abstrac关键原创 2016-11-13 23:52:51 · 685 阅读 · 0 评论 -
Java EE学习笔记之——继承
继承的规则和特点:子类不能同时继承多个父类,但是子类可以多层继承父类(举个例子)。class Zu { String a = "呵呵呵呵";}class Fu extends Zu { String a = "哈哈哈哈";}class Zi extends Fu { String a = "嘿嘿嘿嘿";}父类可以被多个子类继承。子类有父类的的全部属性和方法。继承里原创 2016-11-13 23:45:47 · 298 阅读 · 0 评论 -
Java EE学习笔记之——构造代码块、静态代码块、构造方法、方法的区别
构造代码块:Class Demo { { 代码块 } }静态代码块:Class Demo { Static { 代码块 } }构造方法:Class Demo { Demo() { 代码块 } }方法:Class Demo { Void function() { 代码块 } }执行的优先级:静态代码块>构造代码块>构造方法>方法 注意:静态代码块只执行一次。 (举个原创 2016-11-13 23:34:13 · 279 阅读 · 0 评论 -
折半查找
直接上折半查找的思路图:第一种情况:数组中存在这个数第二种情况:数组中不存在这个数实现代码:public class Demo07 { public static void main(String[] args) { /* * 折半查找 */ int number = 1; //要查找的数字 int[] ar原创 2016-11-16 19:05:47 · 273 阅读 · 0 评论 -
选择排序
选择排序的原理:选择第一个元素,依次和后面的比较,满足某个条件,交换。选择第二个元素,重复上面的的过程。直到倒数第二个元素和末尾比较完毕。废话说完上图:观察规律:N(第几次选择) = Length(数组的长度) - 1M(比较的次数) = Length - N编程的思路:双重循环实现:外层控制选择第几个元素,内层控制比较的次数。代码实现:public class Demo06 {原创 2016-11-16 19:01:48 · 194 阅读 · 0 评论 -
冒泡排序
冒泡排序的原理:从第一个元素开始,与紧挨的下一个元素比较,如果满足某个条件,交换一下。然后让第二个元素与紧挨的下一个元素比较,直到紧邻的所有元素比较完毕。在这个过程中最值挪到了数组的尾端,第一次冒泡结束。开始第二次冒泡,重复上一次过程,由于上一次冒泡的最值已经挪到尾端,所以尾端的元素就不用参与比较。重复冒泡的过程,直到无法比较。上图看起来比较直观:观察一下这张图,这是一个长度为5的数组,冒泡了4次原创 2016-11-16 18:54:07 · 561 阅读 · 0 评论 -
hashCode()和equals()重写
导读为生么要重写equals()?重写equals()后为什么要重写hashCode()?网上有很多优秀的博文,但是有很多讲的不是很明白?在阅览了无数博客后,挑选了两篇讲的严谨透彻的,希望能省去和我一样有疑惑的同学的一些麻烦。为什么重写hashCode()和equals()博客链接:这里写链接内容重写hashCode()和equals()的规则博客链接:这里写链接内容转载 2016-11-28 19:44:31 · 201 阅读 · 0 评论 -
java EE学习之路——封装
封装的思想举一个栗子,我们用过电脑,往电脑里面输入信息(比如打字,点击鼠标···),你还用关心里面的原理么,从电脑往U盘拷贝东西,还用关心传输的细节么。明白了这个,你就理解了封装的思想。 封装的定义是(百度一下)——即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别;将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结原创 2016-11-11 21:55:34 · 271 阅读 · 0 评论 -
完美的获取汉字拼音首字母
需要导入pinyin4j.jar,目前只有一个缺点,不能区分多音字,例如“重庆”,不做单独处理会显示“zq”。package com.gwx.www.utils;import net.sourceforge.pinyin4j.PinyinHelper;import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;import ne...原创 2019-07-17 14:54:05 · 538 阅读 · 0 评论