![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 68
糖人豆丁
这个作者很懒,什么都没留下…
展开
-
Java中的equals和hashcode方法
秋招面试Java岗,被频繁问到equals和hashcode方法,这里总结一下知识点以供日后回顾。一、Object中的equals和hashcode方法。equals和hashcode方法是定义在Java的Object类里的,由于Object类是Java中所有类的根类,所以Java中所有的类都是有equals和hashcode方法的,而且这两个方法大多数时候是会进行重写的,看一下Object类...原创 2019-09-11 11:18:33 · 348 阅读 · 0 评论 -
Java泛型之分页
一、 需求描述在JavaWeb开发中,分页是很常见的功能,在一个系统中,根据需求可能存在不同模块的分页,但是如果对每一个分页都写一个具体的类,这样做重复度太高,会造成代码冗余,因为分页处理的内容只不过是实体类型不同而已,其他的都大同小异。类型不同,自然想到Java泛型的类型参数,关于Java泛型,贴一篇不错的博客。二、具体实现首先,根据分页的功能需要抽象出一个泛型基类PageModel,该...原创 2019-03-23 16:11:26 · 2022 阅读 · 0 评论 -
Java字符串常量池
Java中==运算符判断两个对象是否指向同一个堆空间地址,但是下面的程序返回的却是truepublic class A { public static void main(String[] args) { String a = "ab"; String b = "a" + "b"; //TODO:思考为什么相等,返回值是True呢??...原创 2019-03-26 11:21:37 · 113 阅读 · 0 评论 -
Java泛型学习
一、 序言一直在用的语言是Java,本以为掌握的已经不错了,但最近面试才发现之前自己只是停留在熟料使用的状态,距离编写出优雅,高可复用的代码还有一定的距离。强烈建议大家有机会一定要去看一下JDK源码,写的非常漂亮,可以学到不少东西!二、 泛型为什么要使用泛型?进行日常开发时,当面对有重复的代码时,我们自然而然的将公共部分抽取出来封装成一个函数或方法,然后进行频繁调用。同样的道理,在进行功...原创 2019-03-22 16:00:38 · 281 阅读 · 0 评论 -
Java容器学习
使用接口的目的在于如果你决定修改你的实现,所需的只是在创建处修改它!这里ArrayList已经被向上转型为List(注意List是接口interface)。因此,创建一个具体类的对象,将其转型为对应的接口,然后在其余的代码中使用这个接口。但是这种方式并非总能奏效,因为某些类具有额外的功能。例如,LinkedList中具有在List接口中未包含的额外方法,而TreeMap也具有在Map接口中未包含...原创 2019-03-26 08:49:05 · 122 阅读 · 0 评论 -
Java访问权限
Java访问权限高到低:public -> protected -> default -> privatepublic:公共权限使用public修饰符的类允许任意类(可在不同的包中)访问该类public类中的成员和方法是public时,可被其他类访问private:私有权限一般修饰变量和方法,被修饰的变量和方法只能被当前的类访问(使用)default:包级别访问权限...原创 2019-03-25 10:52:54 · 1025 阅读 · 0 评论 -
Java基本数据类型
Java中的数据类型大致可分为两种:基本数据类型和引用数据类型。基本数据类型只包括:byte, short, int , long, float, double, char, boolean八种。其他的都是引用数据类型,尤其需要注意的是基本数据类型构成的数组也是引用数据类型。示例代码如下:public class MaxValue { static void transform1D...原创 2019-03-08 08:52:02 · 119 阅读 · 0 评论 -
服务器下MySQL数据库的定时备份与恢复
原文地址一、为什么要进行数据库备份在生产环境中数据库可能会遭遇各种各样的不测从而导致数据丢失,所以, 为了在数据丢失之后能够恢复数据, 我们就需要定期的备份数据。二、 实现功能描述把MySql数据库存放目录/var/lib/mysql下面的test数据库备份到/media/hsu/DA18EBFA09C1B27D/test_db_backup里面(这里数据库备份是放到了另外一个硬盘下面),...原创 2019-03-07 10:11:56 · 700 阅读 · 1 评论 -
配置高可用集群
一、Redis Cluster由于Redis中所存储的数据增长速度很快,一个存储了大量数据(>16GB)的Redis实例的处理能力和内存容量可能会变成应用的瓶颈。随着Redis中数据集大小的增长,在进行持久化或主从复制时,也会越来越多地出现诸如延迟等的问题。对于这种情况,Redis Cluster技术可以将数据集通过分区的方式分布到多个Redis实例中。...原创 2019-04-01 15:41:07 · 195 阅读 · 0 评论 -
Java中的8种基本数据类型
转载自:http://www.cnblogs.com/doit8791/archive/2012/05/25/2517448.htmlJava基本类型共有八种,基本类型可以分为三类:字符类型char布尔类型boolean数值类型byte、short、int、long、float、double。数值类型又可以分为整数类型byte、short、int、long和浮点数类型float、dou...转载 2019-03-28 10:09:23 · 131 阅读 · 0 评论 -
Java的3种代理模式(转载)
一、代理模式代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法举个例子来说明代理的作用:假设我们想邀请一位明星,那么并不是直接连接明星,而是联系明星的...转载 2019-06-27 15:40:37 · 122 阅读 · 0 评论 -
Java使用Scanner对象的输入问题
一、背景描述今天在使用Java做OJ题目时,死活输入不对,类似如下:public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); String str = in.nextLine(); Syst...原创 2019-05-19 17:02:18 · 6248 阅读 · 0 评论 -
Java多线程编程
一、Java线程APIJava标准库类java.lang.Thread就是Java平台对线程的实现。Thread类或其子类的一个实例就是一个线程。每个线程都有其要执行的任务。线程的任务处理逻辑可以在Thread类的run实例方法中直接实现或通过该方法进行调用,因此run方法相当于线程的任务处理逻辑的入口方法,它由Java虚拟机在运行相关线程时直接调用,而不是由应用代码进行调用。运行一个线程实...原创 2019-04-19 09:58:48 · 147 阅读 · 0 评论 -
如何指定多个线程的执行顺序
一、问题定义运行10个线程,按照顺序打印0123456789,Java代码实现!二、具体实现原始实现设定一个orderNum,每个线程执行结束后,更新orderNum,指明下一个要执行的线程,并且唤醒所有的等待线程;在每一个线程的开始,要while判断orderNum是否等于自己的要求值,不是则wait,是则执行本线程。public class OrderedThread ex...原创 2019-04-23 17:13:27 · 1262 阅读 · 0 评论 -
Java中集合和数组相互转换的注意点
一、前言Java中数组和集合是常用的两种数据结构,前者直接、占空间小,后者简单易用,但有时有的场合需要将这两种数据结构进行互转,尽管提供了API,但不注意是会出错的,这里对一些关键点进行一下记录二、数组转集合Arrays是针对数组对象进行操作的工具类,包括数组的排序、查找、对比、拷贝等操作。**在数组转集合的过程中,注意是否使用了视图方式直接返回数组中的数据。**至直接使用Arrays.as...原创 2019-04-27 15:40:22 · 749 阅读 · 0 评论 -
Java中的Math.round
Java中Math.round(a)的具体用法是:将a的值加上0.5得到一个新值,然后对这个新值取第一个小于等于这个新值的整数,返回为long型数据。原创 2019-04-17 11:04:00 · 195 阅读 · 0 评论 -
Java输入问题
因为某些原因,需要用Java进行oj刷题,当然要首先解决一下输入问题啊!Java中调用Scanner对象进行输入,可以根据数据类型完成指定类型的输入,这里主要讨论一下用于字符串输入的.next()方法和.nextLine()方法。next()next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有...原创 2019-04-21 14:54:10 · 351 阅读 · 0 评论 -
Java变量初始化
Java中有两种变量,局部变量和成员变量。局部变量必须要初始化,否则编译时会报错,即局部变量必须要初始化赋值才能使用。但是类中的成员变量可以不进行初始化,虚拟机也会确保它有一个默认的值。Java也会给定默认的初始值。默认是如下所示:当变量作为作为类成员使用时,Java才确保给定其初始值,防止程序运行时错误。在Java中基本类型的默认值是0,引用类型会默认为null。...原创 2019-04-16 17:19:27 · 1568 阅读 · 0 评论 -
Java中的goto
一、 Java中的goto关键字 在C/C++中,goto常被用于跳出多重循环。但goto 语句的使用往往会使程序的可读性降低,所以 Java 不允许 goto 跳转。实际上,自从“goto有害论”提出后,软件开发就不建议使用goto了,但是Java中依然保留了goto这个关键字留作备用,但这个关键字没有任何作用,...原创 2019-04-16 16:09:55 · 50278 阅读 · 6 评论 -
JSP用户未登录跳转到网站首页
在JSP中加入:<% if(request.getSession().getAttribute("userId")==null) response.sendRedirect("/common/toLogin.action"); %>原创 2018-12-06 20:45:49 · 2254 阅读 · 1 评论 -
Java Web禁止浏览器后退
对于很多内部系统,用户登录后应该禁止使用浏览器的后退按钮退出,而是使用页面上的退出按钮来退出系统,因此需要禁止浏览器的会推按钮功能。 function disablePageBack() { //消除后退的所有动作。包括 键盘、鼠标手势等产生的后退动作。,用户登录到系统中后,浏览器回退按钮失效,只能点击退出按钮退出系统! history.pushS...原创 2018-11-25 11:04:36 · 1709 阅读 · 1 评论 -
Java编程学习——访问权限
用关键字private修饰的成员变量和方法称为私有变量和私有方法。类内定义的private变量或方法只能在本类内(定义时)使用,而不能在另外一个类中通过该类的对象访问private变量或方法。用public修饰的成员变量和方法被称为共有变量和共有方法。如果A类的某个成员或方法是public型,那么在B类中定义的A的对象a可以直接访问或操作该变量、方法。protected修饰的成员变量和方法称为受原创 2016-03-21 21:04:41 · 480 阅读 · 0 评论 -
Java编程细节注意
把abcd…s共19个字母组成的序列重复拼接106次,得到长度为2014的串。接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母。 得到的新串再进行删除奇数位置字母的动作。如此下去,最后只剩下一个字母,请写出该字母。答案是一个小写字母,请通过浏览器提交答案。不要填写任何多余的内容。public class Main { public static voi原创 2016-03-19 21:12:11 · 516 阅读 · 0 评论 -
Java编程——Calendar类学习及相关日期运算
Calendar类是抽象类,且Calendar类的构造方法是protected的,所以无法使用Calendar类的构造方法来创建对象,API中提供了getInstance方法用来创建对象。 使用Calendar类的static方法getInstance()可以初始化一个日历对象,如: Calendar cal = Calendar.getInstance。Calendar对象可以调用set方法原创 2016-03-19 19:43:57 · 676 阅读 · 0 评论 -
Java实现lowerBound及upperBound
Java中已经实现了BinarySearch,但没有lowerBound和upperBound,整理一下其实现原理。 折半查找中,寻求中间元素的下标时,使用的是“ int m = l + (r - l) / 2;”这种方法,这样做和“int m = (l + r)/2”的结果是一样的,但是避免了溢出,这可以通过下面的代码来验证。public class Main { public stat原创 2016-03-30 17:01:41 · 3817 阅读 · 0 评论 -
优先级队列广搜——坦克大战
坦克大战 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 Many of us had played the game “Battle city” in our childhood, and some people (like me) even often play it on computer now. What we are discussing i原创 2016-03-17 16:43:28 · 406 阅读 · 0 评论 -
HDU 1016(Java) 好大一个坑!!!
Prime Ring ProblemTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 38463 Accepted Submission(s): 17008Problem Description A ring is compose原创 2016-03-02 19:09:20 · 1118 阅读 · 0 评论 -
经典搜索(深搜+剪枝+Java细节注意)
Tempter of the BoneTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 98309 Accepted Submission(s): 26658Problem Description The doggie found原创 2016-03-01 16:21:14 · 2383 阅读 · 0 评论 -
N后问题 Java版
/* //* * N皇后问题Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 14577 Accepted Submission(s): 6646Problem Description 在N*N的方格棋盘放置了N个皇后,使得它原创 2015-12-07 21:11:17 · 689 阅读 · 0 评论 -
java dfs
/* * Lake Counting Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 25214 Accepted: 12701 DescriptionDue to recent rains, water has pooled in various places in Farmer John’s原创 2015-11-25 21:37:01 · 795 阅读 · 0 评论 -
字典序排列(借助于TreeSet实现)
给出一个字符串S(可能又重复的字符),按照字典序从小到大,输出S包括的字符组成的所有排列。例如:S = “1312”, 输出为: 1123 1132 1213 1231 1312 1321 2113 2131 2311 3112 3121 3211 Input 输入一个字符串S(S的长度 <= 9,且只包括0原创 2016-04-03 21:21:16 · 1836 阅读 · 0 评论 -
Java学习
一个Java应用程序必须有一个类含有public static void main(String args[])方法,称这个类是应用程序的主类。当Java应用程序中有多个类时,Java解释器执行的类名必须是主类的名字。如果源文件中有多个类,那么只能有一个类是public类;如果有一个类是public类,那么源文件的名字必须和这个类的名字完全相同。 public static void main(原创 2016-03-22 16:47:25 · 287 阅读 · 0 评论 -
SSM项目后台返回JQuery EasyUI请求
对于一般的请求直接返回ModelAndVIew就可以了,但有时为了操作方便,前台会要用到Ajax来请求,而且有的前端框架要求返回指定的JSON格式,这里先针对POST请求的后台做一个处理。前台代码 function serverLogin() { var $newpass = $('#txtNewPass'); var $rePass...原创 2018-11-16 09:21:59 · 431 阅读 · 0 评论 -
JDBC连接MySql数据库
使用JDBC连接MySql数据库,需要先在项目中添加Jar包:“mysql-connector-java-5.1.42-bin.jar”import java.sql.*;public class JDBCStudy { public static void main(String[] args) { //数据库连接 Connection conn = nu原创 2017-07-11 09:35:08 · 606 阅读 · 0 评论 -
Java程序内存分配
Java程序有5个不同的地方可以存储数据,分别是寄存器、堆栈、堆、常量存储、非RAM存储。(Java编程思想)寄存器:最快的存储区,位于处理器内部,无法直接控制。堆栈:位于通用RAM(随机访问存储器)中,通过堆栈指针的移动来分配新的内存(堆栈指针向下移动,则分配新的内存;向上移动,则释放那些内存),注意对象的引用存储于堆栈中。堆:一种通用的内存池(也位于RAM区),用于存放所有的Java对象。原创 2017-01-28 16:02:35 · 657 阅读 · 0 评论 -
为什么说Java语言是平台无关的
一、平台与机器指令 无论哪种编程语言编写的应用程序都需要经过操作系统和处理器来完成程序的运行,因此这里的平台是又OS和CPU所构成的,所谓的平台无关就是指软件的运行不会因操作系统、处理器的变化而无法运行或出现运行错误。 每个平台都有自己独特的机器指令,所谓平台的机器指令就是可以被该平台直接识别、执行的一种由0和1组成的序列代码。相同的CPU和不同的OS所形成的平原创 2017-02-09 19:34:40 · 14585 阅读 · 1 评论 -
Java对象、对象引用关系及参数传递讨论
学习Java的过程中,很容易将对象及对象引用混为一谈,而且我们平时在交流时为了方便起见也只是对象怎样、对象怎样,但很多时候我们操作的,根本上来说是对象,但直接操作的却是对象的引用。先贴一篇博文,非常形象的解释了对象及对象引用间的关系.Java语言中通过对象的引用来操纵对象,要注意的一点是对象和对象的引用是存储在不同的地方的,因为对象往往所占的空间要求比较大,所以对象存储在堆中,而为了便于操作,对原创 2016-04-20 12:07:45 · 6274 阅读 · 0 评论 -
Java编程语法——compartator在sort中的使用
Java中有两种方式来提供比较功能!实现java.lang.Comparable接口,使类具有“天生”的比较能力。此接口很简单,只有public int compareTo(Object obj)一个方法(注意在具体使用时Object可以替换为具体的类)。此方法接收一个Object作为参数,如果当前对象(this)小于参数obj则返回负值,如果相等则返回0,如果当前对象大于参数则返回正值。在使用时原创 2016-03-13 21:10:13 · 676 阅读 · 0 评论 -
Java文件操作
一、File对象(找到指定的文件所在的路径)File对象不涉及文件读写操作,更贴切的来说File对象的含义应该是FilePath,它指定了文件的路径。File对象通过mkdir()方法创建一个文件目录,通过createNewFile()来创建文件。File 的构造方法需要指明文件所在的路径,有绝对路径和相对路径。 相对路径具有很多的优良特性。二、文件字节输入、输出流FileInput原创 2016-04-13 11:23:54 · 405 阅读 · 0 评论 -
Java——接口
使用关键字interface来定义接口:interface 接口的名字。接口体中包含常量的声明(没有变量)和抽象方法两部分。接口体中只有抽象方法,没有普通的方法。接口体中所有的常量的访问权限一定是public,而且是static常量(允许省略public、static和final修饰符),所有的抽象方法的访问权限也都是public(允许省略public abstract修饰符)。抽象类与接口的区原创 2016-03-22 20:06:33 · 649 阅读 · 0 评论