
学习历程
不吃猫的鱼c
Stay hungry,Stay foolish!
展开
-
Java篇—取反(~)操作符的应用及理解
话不多说,先给大家上一个代码:public class TestDemo { public static void main(String[] args) { int a = 10; int b = 5; System.out.println(a+~b); }}运行结果是多少? 5? 15?实践是检验...原创 2019-10-16 17:47:23 · 7988 阅读 · 3 评论 -
Java篇—四大访问控制权限解析
在java中提供有四种访问控制权限:public,private,default,protected。访问范围排序(由小到大):private(最小),default ,protected ,public(最大) 。访问范围图解:注:对于public永远都可以访问,对于Java特性之一的封装性而言主要是private、default、protected权限。访问权限文...原创 2019-08-05 10:39:49 · 1347 阅读 · 0 评论 -
jdbc数据库连接文件配置(mysql.properties)
propertie文件编写(键值对)jdbc.driver = com.mysql.jdbc.Driverjdbc.url = jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8jdbc.username= rootjdbc.password= root说明:1)properti...原创 2019-07-31 23:31:20 · 2687 阅读 · 0 评论 -
Java篇—抽象类和接口的区别(干货)
一、抽象类关键字abstract修饰的类叫做抽象类。就是比如我们熟悉的泰迪,哈巴,二哈,阿拉斯加,秋田犬等等大小形态有很大区别,我们怎么把他们抽象一下呢?那就是他们都有一些本质上相同的东西那就是他们都是狗,是狗就有耳朵,尾巴,四肢等等我们把这些给抽象出来,至于耳朵是啥样的,尾巴是长是短,颜色是啥,这就需要子类实现狗这个抽象方法了。关键字abstract说明: 1.abstr...原创 2019-08-24 11:37:15 · 807 阅读 · 0 评论 -
Java篇—final,finally,finalize的区别
1.final在java中,final可以用来修饰类,方法和变量(成员变量或局部变量)。(1)修饰类当用final修饰类的时候,表明该类不能被其他类所继承。当我们需要让一个类永远不被继承,此时就可以用final修饰,但要注意:final类中所有的成员方法都会隐式的定义为final方法。(2)修饰方法final修饰的方法不能够被重写,使用final关键字修饰方法的目的在于把方...原创 2019-08-20 22:18:41 · 201 阅读 · 0 评论 -
Java篇—String,StringBuffer和StringBuilder的区别
三者的定义:String:字符串常量,字符串String类代表字符串。 Java程序中的所有字符串文字(例如"abc" )都被实现为此类的实例。字符串不变; 它们的值在创建后不能被更改。 字符串缓冲区支持可变字符串。 因为String对象是不可变的,它们可以被共享。StringBuffer 与 StringBuilder是字符缓冲变量。StringBuffer 与 StringBuilde...原创 2019-08-20 22:50:42 · 131 阅读 · 0 评论 -
Java篇—和为S的两个数字
题目描述:输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得它们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的那一对。思路分析:由于是递增排序的数组,所以,我们可以使用两个指针,分别指向数组的首元素和尾元素(一个从前往后,指向较小的数,一个从后往前,指向较大的数),这样找到的两个数的乘积必然是最小的。当两个数的和大于S时,较大的数字指针向左移动,当两个数的和小...原创 2019-08-15 22:00:35 · 242 阅读 · 0 评论 -
Java篇—左旋转字符串
题目描述:汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=“abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。思路分析:n作为字符串左旋的位置,其实就是将字符串[0,n)放置在字符串[n,length)的后面,从而组成新的字符...原创 2019-08-15 22:35:18 · 576 阅读 · 0 评论 -
DAO层(数据库)实体类的属性用包装类原因解析
在数据库中,数据的默认值是 null,而在 Java 中,基本类型的默认值不是 null,例如,int 类型的默认值是 0,而包装类Integer的默认值是 null,因为是对象。简单来说就是我们如果自定义了一个Student类,其中有一个属性成绩score,如果用Integer而不用int定义,一次考试,学生可能没考,值是null,也可能考了,但考了0分,值是0,这两个表达的状态明显不一...原创 2019-08-16 11:02:01 · 2319 阅读 · 1 评论 -
Java篇—字符串中连续最长的数字串
题目描述:读入一个字符串str,输出字符串str中连续最长的数字串输入描述:每个测试输入包含1个测试用例,一个字符串str,长度不超过255。输出描述:在一行内输出str中里连续最长的数字串和长度。输入样例:abcd12345ed125ss123456789输出样例:123456789,9题目解析:step 1:将输入的字符串转化为字符数组;step...原创 2019-08-13 11:54:07 · 2838 阅读 · 0 评论 -
Java篇—关键字default的理解
default关键字介绍:default是在java8中引入的关键字,也可称为Virtualextension methods——虚拟扩展方法。它是指,在接口内部包含了一些默认的方法实现(也就是接口中可以包含方法体,这打破了Java之前版本对接口的语法限制),从而使得接口在进行扩展的时候,不会破坏与接口相关的实现类代码。我们原来在写Java接口的时候,是不能有方法体的函数,就类似于C...原创 2019-08-16 23:56:00 · 11302 阅读 · 0 评论 -
Java篇—自增(自减)陷阱的分析总结
讲述自增(自减)陷阱问题之前,先给大家回顾一下前置++和后置++的区别:public class Test { public static void main(String[] args) { System.out.println("i++"); int i = 3; int count = (i++) + (i++) + (i++);...原创 2019-08-28 20:17:43 · 481 阅读 · 0 评论 -
Java篇—Arrays.sort()用法理解
Java的Arrays类中有一个sort()方法,该方法是Arrays类的静态方法,在需要对数组进行排序时,可以直接调用。注:数组类型是Object(),即sort()的参数类型也为Object。本文中以int型数组为例。用法1:Arrays.sort(int[] a)它是对数组的所有元素进行升序排序,即将数组中的元素按照从小到大进行排序。代码实现:import java...原创 2019-07-27 02:08:07 · 4886 阅读 · 0 评论 -
Java篇—移位运算符详解及代码展示
Java移位运算符的内容:左移位运算符(<<)、有符号右移位运算符(>>)、无符号右移位运算符(>>>)。移位运算符的操作对象:移位运算符操作的对象就是二进制的位,可以单独用移位运算符来处理int型整数。移位运算符详解:(1)左移位运算符(<<):将运算符左边的对象向左移动运算符右边指定的位数(在低位补0);publi...原创 2019-08-04 18:20:35 · 735 阅读 · 0 评论 -
Java篇—二维数组的查找
题目描述:在一个二维数组中,每一行都是按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解题思路:利用该二维数组的特性(行列都是递增的),用所查整数与右上角的元素进行比较,如果所查整数小于右上角数值(该元素为第一行的最大元素,最后一列的最小元素),则列col--,否则,行row++,查找结束的时候,如果还未...原创 2019-07-20 13:54:57 · 449 阅读 · 0 评论 -
Java篇—单词倒排
题目描述:对字符串中的所有单词进行倒排。题目说明:1、每个单词是以26个大写或小写英文字母构成;2、非构成单词的字符均视为单词间隔符;3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符;4、每个单词最长20个字母;问题分析:输入的是一个字符串,这个字符串中用空格或者其他非字母字符作为间隔符,间隔符可...原创 2019-07-25 00:45:53 · 874 阅读 · 0 评论 -
Java篇—驼峰命名法(CamelCase)
骆驼式命名法定义:就是当变量名或函数名是由一个或多个单词连结在一起,而构成的唯一识别字时,第一个单词以小写字母开始;从第二个单词开始以后的每个单词的首字母都采用大写字母,例如:myFirstName、myLastName,这样的变量名看上去就像骆驼峰一样此起彼伏,故得名。题目描述:从C/C++转到Java的程序员,一开始最不习惯的就是变量命名方式的改变。C语言风格使用下划线分隔多个单词,...原创 2019-07-25 01:11:26 · 2471 阅读 · 0 评论 -
Java篇—数组中出现次数超过一半的数字
题目描述:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1, 2, 3, 2, 2, 2, 5, 4, 2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果这个数字不存在,输出0。解法1(算法实现—不需要对数组进行任何操作)思路解析:step 1:把数组中的第一个元素保存下来,放入result中,记录次数count为1...原创 2019-08-03 00:35:22 · 634 阅读 · 0 评论 -
Java篇—“topK”问题详解(最小堆实现)
topK问题:从海量数据中获取最大(或最小)的K个数据。堆的知识点:https://blog.youkuaiyun.com/weixin_43761659/article/details/97118158最小堆(小根堆)图解:最小堆(小根堆)是一种数据结构,它首先是一颗完全二叉树,并且,它所有父节点的值都小于或等于两个子节点的值。如上图所示:a[0] <= a[1] &&...原创 2019-07-25 23:23:19 · 2034 阅读 · 0 评论 -
Java篇—获取当前系统时间的三种方式(超详细+多方法)
1.通过util包中的Date类来获取当前时间方法1详细代码:public class Exercise17 { public static void main(String[] args){ Date date = new Date(); SimpleDateFormat simpleDateFormat = new SimpleDateForm...原创 2019-08-04 01:03:19 · 11508 阅读 · 1 评论 -
Java篇—根据输入的日期(年月日),输出这一年的第几天
题目描述:根据输入的日期,计算是这一年的第几天。解题思路:step 1:判断输入日期的合法性,如果输入不合法返回-1;step 2:根据输入的月份,计算从1月到(month - 1)月的天数,如果是二月的话,就要判断该年是否为闰年(闰年,day加29天,反之,day加28天);step 3:根据步骤二计算出来的数值,最后加上输入的date,输出即可。 详细代...原创 2019-07-22 19:56:24 · 9093 阅读 · 3 评论 -
Java篇—字符串加解密
题目描述:1.对输入的字符串进行加解密,并输出。2.加密方法为:当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a;当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0;其他字符不做变化。3.解密方法为加密的逆过程。解题思路:step 1:先将字符串变量转换为字符数组,然后对字符进行相对应的转换,调...原创 2019-07-22 20:45:45 · 1329 阅读 · 0 评论 -
计算机中数的存储形式(原码,反码,补码的表示)
原码、反码和补码知识点:(1)原码:10进制转换成2进制是原码,只不过正数的原码是本身符号位为0,负数的原码符号位为1;例:单字节的1,10进制1的原码是0000 0001,10进制-1的原码是1000 0001。(2)反码:正数的反码是它本身,负数的反码是保留符号位,其他位取反(注意负数求反码时候的符号位不参与变换);例:单字节的-1,原码是1000 0001,它的反码就是 11...原创 2019-08-04 18:15:21 · 3665 阅读 · 0 评论 -
Java篇—二进制中1的个数(思路解析及代码实现)
题目描述:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。解法1思路解析:step 1:num的二进制的最右边位与1相与,如果不为0,则count加1;step 2:否则,对1左移一位,继续与num的二进制的最右边数的第二位进行相与;step 3:依次循环,即可完成。解法1代码实现:import java.util.Scanner;public cl...原创 2019-08-04 18:25:44 · 958 阅读 · 0 评论 -
Java篇—“堆”详解(初始化,插入堆,删除堆顶元素,堆排序)
堆:(1)堆通常是一个可以被看做一棵树的数组对象。(2)将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。(3)堆是非线性数据结构,相当于一维数组,有两个直接后继。堆的定义:(1)n个元素的序列{k1,k2,ki,…,kn}当且仅当满足下关系时,称之为堆。 (ki<= k2i,ki<= k2i+1)或者(ki>= ...原创 2019-07-24 12:43:42 · 1433 阅读 · 1 评论