自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 HashMap部分源码解读

//onlyIfAbsent表示是否覆盖,如果是false,则后面添加的值会覆盖前面的值 final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { //tab[]为数组,p为桶 Node<K,V>[] tab; Node...

2019-08-27 18:57:03 112

原创 Collection知识点小总结

2019-08-27 18:54:31 147

原创 排序之直接插入排序

直接插入排序:什么是直接插入排序?直接插入排序就是从第二个数字开始排序,跟它之前的数依次比较,然后放到合适的位置,然后依次对后面的数进行排序。就像我们玩牌一样,揭到第一张牌是有序的,第二张跟第一张相比较,比它小的放前面,比它大的放后面,再来第三张,跟前两张比较,放到顺序合适的位置…图解:从上面图片中我们可以看出,插入数据时,从后往前比较,如果该数比相比较的数(放在temp中)大,就将该数向...

2019-07-16 20:46:33 246

原创 设计模式之单例模式

什么是单例模式?单例模式就是一个类只能创建一个对象;特点:既然只能创建一个对象那么就在类外不能随意创建对象,所以就将构造方法私有化,在类内创建唯一的对象;构造方法私有化后,只能在类内创建对象,所以在类内封装这个类的对象作为属性;因为对象是在类内创建的,所以就需要提供一个外部类获取这个对象的方法,我们都知道,调用一个类的普通方法需要对象才能调用,而我们现在才是获取对象,所以要将这个方法进行...

2019-06-07 13:18:57 144

原创 java中的“==”和equals()

在JDK源码中实现的equals()方法是与“”等价的,都是比较的地址,当没有重写equals()方法时。默认调用的就是JDK里的equals()方法;在这里我们说一下“”和重写后的equals()的不同之处:“==”:在比较常用数据类型的时候,就是两个值相比较但是在比较引用类型时候,就比较的是两个对象的地址...

2019-06-04 14:21:01 81

原创 设计模式之工厂模式

工厂设计模式分为三种模式:简单工厂模式、工厂方法模式和抽象工厂模式。什么是简单工厂模式?举个例子:假设现在有一个造纸的工厂,我不管你是怎么生产的,只要我向这个工厂要A4纸,这个工厂就能给我A4纸,我要B5类型的纸,你就给我B5类型的纸;这种将类的实例化交给工厂来实现,客户端不用关心实现细节的方式就是简单工厂模式;我们用个类图来说明一下这个简单工厂模式:代码实现: import ja...

2019-05-30 23:17:39 106

原创 接口简单总结

接口定义举例:interface IExample{ int x = 3;//public static final int x = 3; public void fun();//public abstract void fun();}interface IMessage{ public abstract void do();}class MyClass im...

2019-04-26 15:39:47 130

原创 模板方法模式

什么是模板模式呢,我们先看一个早上煮稀饭的流程,煮稀饭的时候第一步就是将水烧开,第二步就是放材料,煮什么稀饭放什么材料,第三步就是等稀饭开锅,第四步是将稀饭盛到碗里,第五步给稀饭里加一点糖,大体流程就是这样吧,我们在想想看,是不是做大部分稀饭都是这样的,没错,那么我们就可以给它总结一个流程:将水烧开放材料等稀饭开锅将稀饭盛到碗里给稀饭里加糖这个就是做稀饭的流程,...

2019-04-15 14:27:01 101

原创 抽象类

什么是抽象类:抽象类只不过是在普通类的基础上增加了抽象方法,并且这个类需要用abstract关键字来修饰。那么什么是抽象方法,抽象方法就是定义了一个方法但并不去实现它,即没有方法体,因为抽象类实现这个方法并没有什么意义,抽象方法要使用abstract关键字来修饰。比如说,我们定义一个Animal的抽象类,里面定义一个eat的抽象方法,我们都知道各种动物吃各种不同的食物,那么是让Animal...

2019-04-14 18:58:47 154

原创 左旋数组

题目描述: 将“abcdef”第二位之前的进行旋转,成为“cdefab”;思路:我们可以利用两个方法:String.substring(int beginIndex)方法取出从第n位之后的字符串。不感兴趣就可以不看啦哈哈。我们简单看一下String.substring(int beginIndex)方法的底层实现,就用一般的字符串来说,且n大于等于0且小于等于字符长度:int x = v...

2019-04-12 23:26:49 236

原创 字符串逆置

题目描述: 字符串“i am a student”逆置为“student a am i”;思路:第一次逆置:先将整个字符串都逆置:“tneduts a ma i”第二次逆置再将每个单词逆置“student a am i”,利用空格找出一个单词进行逆置代码:public class TestDemo2 { //首尾交换,头++,尾--,实现逆置 public static...

2019-04-12 23:08:07 306

原创 统计字符串中数字的个数

题目描述: 如 “ABC123 ” 输出为3思路:1.将字符串以数组形式输出,再一一遍历数组,遇到数字计数器加12.可以利用Character.isDigit(str.charAt(i)方法判断是不是为数字,如果是,计数器加1代码:public class TestDemo1{ public static int isNumberic(String str){ i...

2019-04-12 22:59:21 4828

原创 字符串压缩

题目描述:字符串压缩:“aabbccd” 输出“a2b2c2d1”思路:定义两个变量,比如说是i和j,用i每次指向第一个不一样的字符,用j来遍历字符串,如果和i相等,计数器就加一,当j不等于i的时候,就将i指向的字符和次数加到新定义的字符串中,然后把j赋给i,i就指向的下一个不同的字符了。注意每次到了一个不同的字符计数器要初始化为开始的值,注意当最后一次i和就指向的内容相同时,就得将这个字符和它...

2019-04-12 22:54:11 540

原创 类与对象(二)

代码块:在一对{ }里的代码就是一个代码块。{ }中的局部变量的作用域只在{ }之内。代码块分为:普通代码块,构造块,静态代码块和同步代码块普通代码块定义在普通方法中,直接用{ }定义;构造块定义在类中,不加任何修饰符静态代码块是使用static定义的代码块,静态代码块可以放在主类中,也可以放在除了主类以外的地方。我们现在看看各个代码块都是怎样的:class...

2019-04-10 19:41:25 120

原创 类与对象(一)

类与对象:基本概念:类是具有共性的对象的共性抽象,而对象是指一个具体的,可以使用的事 物。对象一定来自于某个类对象是类的实例化类中的组成:属性(变量,描述每个对象的具体特点)方法(对象可执行的过程)类的定义与使用:类的定义:访问权限 class 类名{定义数据(即属性);定义方法;}此时的方法不再有类直接调用,而需要由对象调用。数据的定义:访问权限...

2019-04-09 15:15:41 184

原创 java数组简单介绍

数组:指的就是一组相关类型的变量集合,并且这些变量可以按照统一的方式进行操作。一、数组的初始化:1、 动态初始化:数组首先先开辟内存空间,而后再使用索引进行内容设置语法:数组类型[] 数组名称 = new 数组类型 [长度];Tips:@1 数组的访问通过索引完成。即:“数组名称[索引]”,注意:数组索引从0开始,因此可以采用的索引范围就是0~索引-1;假设现在开辟了3个空...

2019-04-07 14:47:00 178

原创 求出一个数二进制翻转后的值

编写函数:unsigned int reverse_bit(unsigned int value);这个函数的返回值value的二进制位模式从左到右翻转后的值。如:在32位机器上25这个值包含下列各位:00000000000000000000000000011001翻转后:(2550136832)10011000000000000000000000000000程序结果返回:255...

2019-04-05 21:20:47 174

原创 字符串翻转

题目:有一个字符数组的内容为:“student a am i”,请你将数组的内容改为"i am a student".要求:不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。student a am ii ma a tnedutsi am a student思路:从第一行到第二行,我们可以发现是将这个字符数组的第一个元素与最后一个元素交换,然后交换第二个跟倒数第...

2019-04-03 23:24:57 125

原创 C语言操作符简单总结

操作符大致可以分为以下几类:1.算术运算符:+ - * / (加 减 乘 除 取余)+ - * / 可作用于整数和浮点型对于/操作符若两个操作数都为整数,则执行整数除法,而只要有浮点型,则执行 的就是浮点型除法;%操作符的两个操作数必须为整数,返回的为整出之后的余数2.移位操作符:<<(左移) >>(右移)移位操作规则:·· 左移操作符:...

2019-04-03 11:19:23 221

原创 练习题2

1.写一个函数返回参数二进制中 1 的个数比如: 15 0000 1111 4 个 1思路:一个整型为32比特,利用for循环,循环32次,每次值对2取余后的结果判断是否为1,如果是,计数器加1,然后再将值除以2,再次判断。代码:#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>...

2019-03-29 18:30:40 204

原创 函数练习

1.函数实现乘法口诀,口决表的行数和列数自己定指定,输入9,输出9X9的口决表,输入12,输出12X12的口诀表。思路:1X1=11X2=2 2X2=41X3=3 2X3=6 3X3=9当第一层循环的变量值等于第二层循环的变量值时换行代码:#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include&...

2019-03-26 15:27:48 99

原创 练习题1

1.完成猜数字游戏思路:每次进入游戏用rand()函数产生一个随机数,将该数与玩家输入的数相比较,如果玩家的数大于随机数,则输出“猜大了”,如果玩家的数小于随机数,则输出“猜小了”,如果两个数相等,则输出“猜对了”。代码:#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#incl...

2019-03-26 14:52:49 142

原创 简单题型3

1.在屏幕上输出以下图案:思路:每行的*数量是行数的2倍减一个,将图形分为上下两部分,用两次for循环进行输出,上半部分正常输出,下半部分先数出下半部分的行数,然后for循环初始化条件等于行数,更新条件依次减减,注意换行符。代码:#include<stdio.h>#include<stdlib.h>//每行*的打印void Print_s(int i){ f...

2019-03-22 18:00:54 137

原创 简单题型2

1.将数组A中的内容与数组B中的内容进行交换。(数组一样大)思路:利用直接交换法,再利用for循环一一交换代码:#define _CRT_SECURE_NO_WARNINGS #include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;//直接交换void Exchange(int *a, int *b,int i){ a[i] += b[i];...

2019-03-18 16:55:57 91

原创 简单题型1

1.给定两个整形变量的值,将两个变量内容交换。思路:创建一个临时变量,借助临时变量交换变量内容,先将第一个数的值赋给临时变量,再将第二个数的值赋给第一个数,然后将临时变量存的值赋给第二个数。代码:#include&amp;lt;stdio.h&amp;gt;#include&amp;lt;stdlib.h&amp;gt;//创建临时变量完成交换int Exchange(int a,int b){ int temp ...

2019-03-18 16:09:33 129

原创 程序小白的第一天

我是一名编程菜鸟,虽然说自己学的专业是计算机相关专业,编程语言学过也只是学了个皮毛,当站在人生的分叉路口的时候,我看着别人都很肯定的选择了自己的方向,一次又一次我不敢下定决心,还好,现在总算是跟随自己本心选择了编程这条路,既然选择了这条路,就踏踏实实认认真真的去做。 踏上这条路的开始,为自己立一个flag鼓励并鞭策自己: -每天必须将...

2019-03-15 17:48:24 237 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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