学会使用debug模式调试代码

在企业开发中,质量和效率显得尤为重要。学会通过debug模式调试代码是每一个开发的必修课。下面我通过一个案例来描述一下如何来调试、跟踪代码。 步骤:在接口或方法的入口打上调试端点,如下所示。 通过“debug as”运行代码,进入debug代码调试模式。 下面介绍几个重要的调试技巧:step i...

2019-05-15 03:33:33

阅读数 45

评论数 0

#数据结构--基于双端链表实现双端队列

4.8.3.5 源码 package com.yzh.maven.entity; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import com.yzh.maven.base.abst...

2019-05-04 19:29:43

阅读数 34

评论数 0

#数据结构--基于数组实现双端队列

4.8.4.6 源码 package com.yzh.maven.entity; import java.util.ConcurrentModificationException; import java.util.EmptyStackException; import com.yzh.mave...

2019-05-04 19:27:14

阅读数 26

评论数 0

#经典面试题--全组合问题

给定一个非重复数数列,求该数列的全组合。例如,{1,2,3}的全组合为{1},{2},{3},{1,2},{1,3},{2,3},{1,2,3}。 这是一道非常经典的笔试题,可以通过递归来求解。这里我们可以利用上面已知的二进制方法来求解,我们可以将组合数中的每一个数标记为”1”,0表示未击中该组合...

2019-05-04 19:24:47

阅读数 27

评论数 0

#栈--基于链表实现栈

3.4.2.2 基于本地创建的链表实现栈 package com.yzh.maven.entity; import com.yzh.maven.base.dao.MyStackDao; public class MyLinkedStack<E> implements...

2019-05-04 19:22:43

阅读数 22

评论数 0

#面试--单链表常见面试题汇总

2.7.4.3.8.1 找出单链表中的倒数第k个元素,实现该方法 这是一道经典的笔试题,其实实现该方法十分简单。直接找倒数第k个元素似乎不太容易,要想找出倒数第k个元素,我们可以从第k个元素和倒数第k个元素的关系来获取倒数第k个元素。该关系如下所示。 从上图可以看出来,倒数第k个节点的索引...

2019-05-04 18:57:22

阅读数 58

评论数 0

#Java源码分析--LinkedList容器之实现单链表(2)

2.7.4.2单链表add方法的实现 2.7.4.2.1循环法 但是,从上面链表添加元素的操作来看,一点也不觉得优雅,而且它将所有的节点数据信息全部暴露给外部了。在Java中,将数据信息暴露给外部已经违背它的设计特点—封装的完整性。那么,如何进行改进呢?实际上,我们可以这样考虑,由于第一个节点可以...

2019-05-04 18:39:12

阅读数 13

评论数 0

#Java源码分析--LinkedList容器(1)

2.7.1 链表的概念 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线...

2019-05-04 18:25:42

阅读数 12

评论数 0

#架构师之性能优化篇--防止SQL注入攻击

要解决SQL注入攻击,首先必须要认识什么是SQL注入攻击。先来看一个例子: package com.yzh.maven.main; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Resu...

2019-01-21 00:07:52

阅读数 46

评论数 0

#架构师之性能优化篇--应使用日志打印语句代替e.printStackTrace()

例 try{ int i = 3/0; }catch(Exception e){ e.printStackTrace(); } 需要将其修改为日志打印异常的方式: private static final Logger logger = Logger.getLogger(TestA.clas...

2019-01-21 00:06:24

阅读数 303

评论数 0

#架构师之性能优化篇--不要在循环中使用try…catch…,应该把其放在最外层

除非需要在循环中进行特殊的捕获处理,否则禁止在循环内部使用try…catch…语句。正确的做法是在for循环外部进行异常捕获处理。

2019-01-21 00:05:05

阅读数 621

评论数 0

#架构师之性能优化篇--不要在循环体内声明变量或对象

List<Object> myList = new ArrayList<Object>(); for(int k = 0;k<10;k++){ //注意即使是将str...

2019-01-21 00:02:26

阅读数 73

评论数 0

#架构师之性能优化篇--ArrayList遍历最优化探究

你已经知道遍历ArrayList的方式有三种,分别是get(i)/size()、增强型for(forEach)和使用迭代器。那么这三种方式效率最高的是哪一种方式呢? List<String> list = new ArrayList&lt...

2019-01-20 23:55:26

阅读数 49

评论数 0

#架构师之性能优化篇--String与StringBuffer的拼接

4 String与StringBuffer的拼接 例 对下面的代码进行优化 String str = ""; for(int i = 0;i<10;i++){ str +="&...

2019-01-20 23:51:40

阅读数 30

评论数 0

#架构师之性能优化篇--两个Integer类型比较大小

由于Integer是引用类型,因此比较大小使用equals方法,但是Integer与int类型比较时,会转化为int类型进行比较。对于-128-127之间的数据,可以使用==进行比较两个Integer类型数据的大小(因为此时使用的是缓存数据,数据的内存地址都是使用的缓存数据的内存地址),但是以外的...

2019-01-20 23:48:19

阅读数 26

评论数 0

#架构师之性能优化篇--遍历map最优方法entrySet的迭代方式

假设创建了如下的map: Map<String,String> map = new HashMap<String,String>(); for(int i = 1001;i<149511;...

2019-01-20 23:45:18

阅读数 34

评论数 0

#架构师之性能优化篇--使用包装类的parseXXX()代替valuesOf()

valuesOf和parseXXX都是包装类的静态方法,都可以将字符串类型的数字转化为整型数据,但略有不同,我们来看下面这一段代码: String numStr1 = "127"; String numStr2 = "127"...

2019-01-19 11:25:52

阅读数 84

评论数 0

#Eclipse中使用javap命令打出字节码虚指令(转)

1、Eclipse中Run->External Tools->External Tools Configurations,打开看到如下界面: 2、右键点击Program->new,然后出现界面: 3、然后配置Location、W...

2019-01-18 02:31:24

阅读数 36

评论数 0

#Java算法设计与分析1--递归算法

1.递归算法 1.1递归的概念 所谓递归,就是程序方法在运行过程中自身调用自身。定义如下所示。 fn(){ if(递归出口条件){ return x; }else{ //some codes… return fn(); } } 1.2递归的使用条件 1.2.1 必须要有明确的递归出口 所...

2019-01-09 07:33:03

阅读数 63

评论数 0

#源码分析篇--Java集合操作(9)重写顺序表的toString()方法

2.6.12 重写顺序表的toString()方法 默认情况下,普通类都是继承了Object超类的toString(),这个方法如下所示: public String toString() { return getClass().getName() + "@&qu...

2019-01-02 02:19:00

阅读数 45

评论数 0

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