冒泡算法 冒泡排序顾名思义是通过两两比较,将数据当中最大的那个“浮”到数列的顶端,通过这种不断的上“浮”,最终达到有序的排序算法。冒泡排序因其简单稳定而受到大家的欢迎,也是初学者最容易掌握的一种排序算法。 稳定性:冒泡排序就是把大的元素往后调(或者小的元素往前调)。比较的是相邻的两个元素,交换也只发生在这两个元素之间。所以,如果两个元素相等,是不会交换的;即使两个元素相等却没有相邻,那么通过前面的两两交换把他们相邻起来,这时候比较的相等也是不会交换的,因此相同元素的前后顺序不会改变,所以冒泡排序是一种稳定排序算法。…

2021年9月6日 0条评论 49点热度 阅读全文

java实体类重写.toString()方法 1. 前言 笔者在做javaweb项目时候,使用SSM+maven+easyui,然后在写java实体类的时候,发现大家都要写tostring方法,那么为什么java实体类都要写.toString()方法?于是顺便在这里记录一下。 2. 了解 在Java中每个类都默认继承Object类,除非声明继承于某个类。 而toString 方法来自于Object 类,作用是: 返回一个字符串,是该Java对象的内存地址经过哈希算法得出的int类型的值在转换成十六进制。 换句话说,…

2021年8月23日 0条评论 31点热度 阅读全文

Part1.走近java Part2.自动内存管理机制 Chapter2.java内存区域与内存溢出异常 2.1概述 java与c++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”。java程序员把内存控制的权利交给了java虚拟机。 2.2运行时数据区域 图例: 2.2.1程序计数器 程序计数器(prgram counter register)可以看做是当前线程所执行的字节码的行号指示器。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基…

2021年5月1日 0条评论 54点热度 阅读全文

自己絮絮叨叨的一些废话 这本书真是神作,很少读过国内作者写的如此精确易懂的技术书籍。 我感觉,作为一名Java程序员,是一定要知道、了解进而掌握JVM的,毕竟是Java知识体系的核心所在。然而,刚刚接触Java的时候,一听什么Java虚拟机,就感觉离自己好远好深奥好高大上,我等菜鸟应该是这辈子都不能懂这种东西了。所谓难者不会,想必就是这个道理。 入行了一年多,感觉如果整天都只能做那些CURD的东西,估计这辈子都成为不了一名真正的程序员了。所以便买了这本风评很好的书,准备硬着头皮去拜读一番。那曾料到,这本书是如此的通…

2021年5月1日 0条评论 56点热度 阅读全文

JVM和类 当我们调用 Java 命令运行某个 Java 程序时,该命令将会启动一条 Java 虚拟机进程,不管该 Java 程序有多么复杂,该程序启动了多少个线程,它们都处于该 Java 虚拟机进程里。同一个 JVM 的所有线程、所有变量都处于同一个进程里,它们都使用该 JVM 进程的内存区。当系统出现以下几种情况时, JVM 进程将被终止: 程序运行到最后正常接收; 程序运行到使用System.exit()或Runtime.getRuntime().exit()代码结束程序; 程序运行中遇到未捕获的异常或错误结…

2021年4月1日 0条评论 20点热度 阅读全文

连续赋值 比如: a = b = true; 关于新增元素到set的一些用法: 如果新增的元素是基本类型,那么会自动判断相等。把重复的元素干掉。 如果新增的元素是复杂类型,比如数组,对象。那么判断相等的条件是该对象的内存地址。如果加入的是同一变量,那么该变量只会被加入一次。也就是说加入的时候判断相等的条件是该对象的内存地址。 public static void main(String[] args) { Set<int[]> set = new HashSet<>(); int[] ite…

2021年3月3日 0条评论 64点热度 阅读全文

在登录的时候,往往希望记录如果登录失败者的ip,并且登录失败次数超过一定的,则不给登录,予以封锁。在spring security中,可以通过如下方式实现。 1) 实现AuthenticationFailureEventListener,这个监听器用来监听 登录失败的事件。 @Componentpublic class AuthenticationFailureListener implements ApplicationListener<AuthenticationFailureBadCredentials…

2021年1月24日 0条评论 113点热度 阅读全文

junit中的不少测试的好方法,比如针对LIST的测试,可以使用 hamcrest-library类库,首先在POM.XML中加入: <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> <e…

2021年1月23日 0条评论 74点热度 阅读全文

1、创建 Statement 对象 建立了到特定数据库的连接之后,就可用该连接发送 SQL 语句。Statement 对象用 Connection 的方法createStatement 创建,如下列代码段中所示: Connection con = DriverManager.getConnection(url, "sunny",""); Statement stmt = con.createStatement(); 为了执行 Statement 对象,被发送到数据库的 SQL 语句将被作为参数提供给 Stateme…

2021年1月17日 0条评论 66点热度 阅读全文

    学之广在于不倦,不倦在于固志。 ——晋·葛洪­    (学问的渊博在于学习时不知道厌倦,而学习不知厌倦在于有坚定的目标) 001.条件控制语句if、switch:    ---> 都是条件控制语句,但各自适用场景不同     ---> if只有一个条件时可以省略后面的大括号,但是不建议省略。另外,多个判断语句相连最后一个else可以省略,但是不建议省略,因为它可以对范围外的错误值进行提示 &nbs…

2021年1月17日 0条评论 86点热度 阅读全文