<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Candy0629的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Candy0629</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Candy0629]]></copyright><item><title><![CDATA[抽象类与接口]]></title><link>https://blog.youkuaiyun.com/Candy0629/article/details/101653535</link><guid>https://blog.youkuaiyun.com/Candy0629/article/details/101653535</guid><author>Candy0629</author><pubDate>Tue, 06 Feb 2018 16:06:00 +0800</pubDate><description><![CDATA[抽象类：就是使用abstract关键字修饰的类
特点：
　　抽象类不能实例化；
　　抽象类中的抽象函数必须由子类去实现，否则子类也是抽象类；
　　抽象类有构造函数，是供子类创建对象时使用的；
　　因为抽象函数必须由子类实现，所以不参与继承的（private）和不能被子类重写的（final）关键字不能和abstract共存；
　　因为静态函数不需要类的对象就可以直接使用...]]></description><category></category></item><item><title><![CDATA[instanceof 关键字]]></title><link>https://blog.youkuaiyun.com/Candy0629/article/details/101653532</link><guid>https://blog.youkuaiyun.com/Candy0629/article/details/101653532</guid><author>Candy0629</author><pubDate>Mon, 05 Feb 2018 17:33:00 +0800</pubDate><description><![CDATA[boolean = Object（类引用名） instanceof Class（类名）
作用：判断符号左边的引用指向的对象是否是右边这个类的对象；

转载于:https://www.cnblogs.com/JiangNian/p/8418617.html...]]></description><category></category></item><item><title><![CDATA[abstract 抽象类]]></title><link>https://blog.youkuaiyun.com/Candy0629/article/details/101653533</link><guid>https://blog.youkuaiyun.com/Candy0629/article/details/101653533</guid><author>Candy0629</author><pubDate>Mon, 05 Feb 2018 17:19:00 +0800</pubDate><description><![CDATA[抽象类的概念：是使用关键字abstract修饰的类就是抽象类；
抽象类的产生：当多个不能相互继承的类具有相同的功能时，就需要将共同的信息向上抽取，放到公共的父类中；如果公共的父类只能描述所有子类都具有的功能，但描述不清功能的具体实现，就需要将该函数定义为抽象的，使用关键字abstract修饰；如果一个类中出现了抽象的函数，说明这个类也是不具体的，应该定义为抽象类，使用abstract修...]]></description><category></category></item><item><title><![CDATA[extends 继承]]></title><link>https://blog.youkuaiyun.com/Candy0629/article/details/101653531</link><guid>https://blog.youkuaiyun.com/Candy0629/article/details/101653531</guid><author>Candy0629</author><pubDate>Mon, 05 Feb 2018 17:09:00 +0800</pubDate><description><![CDATA[继承的作用：子类可以直接拥有父类成员；其中，私有成员和构造函数不参与继承；
java中类继承的特点：只支持单一继承和多重继承，不支持多继承（一个类不能同时继承多个类）
继承中成员变量的特点：子类中可以直接使用父类中定义的非私有的成员变量；如果子类中定义了和父类中相同的成员变量，直接调用，实际使用的是子类中定义的成员变量；要使用父类中定义的成员变量，需要使用关键字super，格式是...]]></description><category></category></item><item><title><![CDATA[单例模式]]></title><link>https://blog.youkuaiyun.com/Candy0629/article/details/101653529</link><guid>https://blog.youkuaiyun.com/Candy0629/article/details/101653529</guid><author>Candy0629</author><pubDate>Mon, 05 Feb 2018 16:55:00 +0800</pubDate><description><![CDATA[1.饿汉式：

特点：1、在类加载的时候就创建了唯一实例对象，保证了对象的唯一性；
　　　2、这个类一旦加载，就会创建唯一对象，就算不适用对象，也会创建，造成内存浪费；
2.懒汉式：

特点：1、只有在第一次真正需要使用对象的时候才会创建对象，避免了饿汉式那样的内存浪费的问题；
　　　2、在多线程环境下，不能保证对象的唯一性；
总结：
设计模式：针对某一类问题的通用的解...]]></description><category></category></item><item><title><![CDATA[类的加载过程和对象的创建]]></title><link>https://blog.youkuaiyun.com/Candy0629/article/details/101653530</link><guid>https://blog.youkuaiyun.com/Candy0629/article/details/101653530</guid><author>Candy0629</author><pubDate>Mon, 05 Feb 2018 16:46:00 +0800</pubDate><description><![CDATA[类的加载过程：
　　1、启动JVM，加载程序中需要使用的class文件。
　　2、在加载class文件的时候，所有的静态内容（静态成员变量，静态成员函数，静态代码块）都要加载到方法区的静态区中。
　　3、当类中的所有静态加载完成之后，开始给类中的所有静态成员变量默认初始化。
　　4、类中的所有静态成员变量默认初始化完成之后，开始给这些静态成员变量显示赋值。
　　5、所有静态成员...]]></description><category></category></item><item><title><![CDATA[静态成员变量和非静态成员变量的区别]]></title><link>https://blog.youkuaiyun.com/Candy0629/article/details/101653527</link><guid>https://blog.youkuaiyun.com/Candy0629/article/details/101653527</guid><author>Candy0629</author><pubDate>Mon, 05 Feb 2018 16:31:00 +0800</pubDate><description><![CDATA[1、它们在内存中出现的时间不同：
　　静态成员变量：它是在加载当前这个类的时候，就在方法区的静态区中存在。
　　非静态成员变量：当创建这个类的对象的时候，随着对象的产生在堆中出现。
2、它们所在的内存区域不同：
　　静态成员变量：在方法区的静态区中。
　　非静态成员变量：堆内存中。
3、它们的初始化时间不同：
　　静态成员变量：在类加载的时候就会初始化，类加载完成，变量已经...]]></description><category></category></item><item><title><![CDATA[this关键字]]></title><link>https://blog.youkuaiyun.com/Candy0629/article/details/101653528</link><guid>https://blog.youkuaiyun.com/Candy0629/article/details/101653528</guid><author>Candy0629</author><pubDate>Mon, 05 Feb 2018 12:04:00 +0800</pubDate><description><![CDATA[1、this是用来记录当前调用这个函数的这个对象；
2、this可以在构造函数中完成调用其他的构造函数，格式：this( 参数) ；
　　备注：this调用构造函数，必须放在构造函数中的第一句。我们通过this调用构造函数的目的是希望通过其他的构造函数完成初始化动作，因此要求其他构造函数的初始化必须在本构造函数中语句执行之前先初始化完成。
3、this可以区分成员变量和局部变量，...]]></description><category></category></item><item><title><![CDATA[构造函数和一般函数异同]]></title><link>https://blog.youkuaiyun.com/Candy0629/article/details/101653526</link><guid>https://blog.youkuaiyun.com/Candy0629/article/details/101653526</guid><author>Candy0629</author><pubDate>Mon, 05 Feb 2018 11:57:00 +0800</pubDate><description><![CDATA[1、它们的执行时间不同：
　　构造函数是在创建对象的过程中执行。当对象创建完成了，构造函数就已经执行结束。
　　一般函数执行时间有两种情况：1) 如果调用其他类中的函数时：一般函数通过是在对象创建完成之后，通过对象的引用来调用。
　　　　　　　　　　　　　　　　2) 如果调用本类中的函数时：什么时候使用，什么时候调用。
2、它们的调用次数不同：
　　构造函数只有在new对象的时...]]></description><category></category></item><item><title><![CDATA[数组查找]]></title><link>https://blog.youkuaiyun.com/Candy0629/article/details/101653518</link><guid>https://blog.youkuaiyun.com/Candy0629/article/details/101653518</guid><author>Candy0629</author><pubDate>Fri, 02 Feb 2018 18:00:00 +0800</pubDate><description><![CDATA[1.一般查找:

public class Demo {
	public static void main(String[] asadscgs) {
		int[] arr = { -2, 11, 22, 33, 44, 55, 66, 77, 99, 0, -1 };
		int index = getIndex(arr, -11);
		System.out.printl...]]></description><category></category></item><item><title><![CDATA[局部变量和成员变量的区别]]></title><link>https://blog.youkuaiyun.com/Candy0629/article/details/101653524</link><guid>https://blog.youkuaiyun.com/Candy0629/article/details/101653524</guid><author>Candy0629</author><pubDate>Fri, 02 Feb 2018 17:52:00 +0800</pubDate><description><![CDATA[1、从定义上来讲：
　局部变量定义在函数中。
　成员变量定义在类中。
2、从内存存储上来讲：
　局部变量随着函数的运行会在栈内存中出现，局部变量存储在栈内存中。
　成员变量会随着对象的出现在堆中存在，成员变量存储在堆内存中。
3、从初始值上来讲：
　局部变量在定义时需要指定初始值（局部变量没有默认值），只有初始化之后才能使用。
　成员变量可以不用初始化，有默认值。
4、...]]></description><category></category></item><item><title><![CDATA[常见的几种数组排序方法]]></title><link>https://blog.youkuaiyun.com/Candy0629/article/details/101653525</link><guid>https://blog.youkuaiyun.com/Candy0629/article/details/101653525</guid><author>Candy0629</author><pubDate>Fri, 02 Feb 2018 17:16:00 +0800</pubDate><description><![CDATA[1.选择排序：从数组空间中选择第一个空间然后和其他空间中的数据进行比较，如果要求升序排列，那么选择的这个空间中的数据和其他空间中的数据比较完之后将最小的数据和当前的第一个空间中的数据进行互换位置。然后再选择第二个空间中的数据和除第一个空间中的数据进行比较，同样找出最小的数据，将两个空间中的数据的位置互换。后面的数据以此类推，一直到将所有的数据变成从小变大的数据为止。如果将数据进行降序排列...]]></description><category></category></item><item><title><![CDATA[JVM的内存划分]]></title><link>https://blog.youkuaiyun.com/Candy0629/article/details/101653522</link><guid>https://blog.youkuaiyun.com/Candy0629/article/details/101653522</guid><author>Candy0629</author><pubDate>Fri, 02 Feb 2018 16:59:00 +0800</pubDate><description><![CDATA[1.栈内存：栈内存主要是用来运行函数的，在函数中定义的所有变量，都会在这个内存开辟空间。
　　　　　在栈内存中定义的变量，不初始化，是不能直接使用的。
注意：所有的函数都必须在栈内存中运行。
　　　而jvm只会运行处于栈内存顶部的函数。
　　　函数被加载到栈内存的动作，称为函数的压栈（入栈）。
　　　函数执行完之后就会从栈中消失（函数的弹栈，或者叫做出栈）

2.堆内存：...]]></description><category></category></item><item><title><![CDATA[Java函数]]></title><link>https://blog.youkuaiyun.com/Candy0629/article/details/101653523</link><guid>https://blog.youkuaiyun.com/Candy0629/article/details/101653523</guid><author>Candy0629</author><pubDate>Fri, 02 Feb 2018 16:41:00 +0800</pubDate><description><![CDATA[使用javac 启动编译器，检查源代码中是否有语法错误，没有错误会编译之后生成class文件。
使用java 命令启动JVM，然后JVM会分配内存，把class文件加载内存中。class文件加载完成之后，开始在class文件中找main方法运行。

函数在内存中加载:所有的函数都必须在栈内存中运行，而jvm只会运行处于栈内存顶部的函数。

函数的重载:要求必须在同一个类（程...]]></description><category></category></item><item><title><![CDATA[break和continue的区别]]></title><link>https://blog.youkuaiyun.com/Candy0629/article/details/101653520</link><guid>https://blog.youkuaiyun.com/Candy0629/article/details/101653520</guid><author>Candy0629</author><pubDate>Fri, 02 Feb 2018 15:47:00 +0800</pubDate><description><![CDATA[break：主要是跳出当前正在执行的代码。break，它主要用在switch的case中，或者用在循环中。
　　　　当用在switch中的时候，在程序执行switch中的代码时候，遇到break，会导致当前这个switch代码彻底结束，而去执行和switch结构上并列的语句。
　　　　当break使用在循环中的时候，只要JVM遇见break，就立刻结束当前循环，不管循环条件是否还成立...]]></description><category></category></item><item><title><![CDATA[Redis清空数据]]></title><link>https://blog.youkuaiyun.com/Candy0629/article/details/101653521</link><guid>https://blog.youkuaiyun.com/Candy0629/article/details/101653521</guid><author>Candy0629</author><pubDate>Fri, 26 Jan 2018 21:14:00 +0800</pubDate><description><![CDATA[进入redis目录下
redis-cli -h IP -p 端口 -a 密码
flushall


转载于:https://www.cnblogs.com/JiangNian/p/8361640.html]]></description><category></category></item><item><title><![CDATA[JAVA中循环删除list中元素的方法总结]]></title><link>https://blog.youkuaiyun.com/Candy0629/article/details/101653519</link><guid>https://blog.youkuaiyun.com/Candy0629/article/details/101653519</guid><author>Candy0629</author><pubDate>Fri, 26 Jan 2018 21:04:00 +0800</pubDate><description><![CDATA[印象中循环删除list中的元素使用for循环的方式是有问题的，但是可以使用增强的for循环，然后今天在使用时发现报错了，然后去科普了一下，再然后发现这是一个误区。下面就来讲一讲。。伸手党可直接跳至文末。看总结。。
　　JAVA中循环遍历list有三种方式for循环、增强for循环（也就是常说的foreach循环）、iterator遍历。
1、for循环遍历list
for(int i=0...]]></description><category></category></item></channel></rss>