<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[newflyer666的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/newflyer666</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; newflyer666]]></copyright><item><title><![CDATA[Android开发：Handler简单实现验证码功能]]></title><link>https://blog.youkuaiyun.com/newflyer666/article/details/125902185</link><guid>https://blog.youkuaiyun.com/newflyer666/article/details/125902185</guid><author>newflyer666</author><pubDate>Thu, 21 Jul 2022 01:12:14 +0800</pubDate><description><![CDATA[最近开始学习handler，觉得这个小demo对handler的理解挺有帮助的。]]></description><category></category></item><item><title><![CDATA[leetcode.704--二分查找]]></title><link>https://blog.youkuaiyun.com/newflyer666/article/details/119427051</link><guid>https://blog.youkuaiyun.com/newflyer666/article/details/119427051</guid><author>newflyer666</author><pubDate>Fri, 06 Aug 2021 20:44:24 +0800</pubDate><description><![CDATA[题目：将给定一个 n 个元素有序的（升序）整型数组 nums 和一个目标值 target  ，写一个函数搜索 nums 中的 target，如果目标值存在返回下标，否则返回 -1。
测试用例：nums = [-1,0,3,5,9,12], target = 9 &amp;&amp;结果为4
解题思路：利用双指针法，通过二分查找查找结果

首先定义两个左右指针，初始化为


...]]></description><category></category></item><item><title><![CDATA[String、StringBuffer和StringBuilder的区别及使用场景]]></title><link>https://blog.youkuaiyun.com/newflyer666/article/details/118058845</link><guid>https://blog.youkuaiyun.com/newflyer666/article/details/118058845</guid><author>newflyer666</author><pubDate>Sat, 19 Jun 2021 21:06:59 +0800</pubDate><description><![CDATA[Java平台提供了两种类型的字符串：String和StingBuffer/StringBuilder，它们都可以存储和操作字符串，区别在于：
1）String是只读字符串，也就意味着String引用的字符串内容是不能被改变的。但是可能有人就有这样的误解：
String str = "abc";
str = "cba";

这样字符串str的内容不是改变了吗？并不是，str只是一个应用对象，它指向一个字符串对象"abc"。第二行代码的含义就是让str重新指向了一个新的字符串"bcd"对象，而"abc"对象并没]]></description><category></category></item><item><title><![CDATA[Java中重写和重载有哪些区别]]></title><link>https://blog.youkuaiyun.com/newflyer666/article/details/118058404</link><guid>https://blog.youkuaiyun.com/newflyer666/article/details/118058404</guid><author>newflyer666</author><pubDate>Sat, 19 Jun 2021 20:35:01 +0800</pubDate><description><![CDATA[其实java中的重写和重载没有任何关系，只是因为都有个重字，有些小白就会对这两个概念产生混淆，所以也就有很多面试官喜欢问这个题目了。
Java中方法的重载和重写都是实现多态的方式，区别在于前者实现的是编译时的多态性，而后者实现的是运行时的多态性。重载发生在一个类中，同名的方法如果有不同的参数列表（参数类型不同，参数个数不同或者两者都不同），则视为重载；重写发生在子类和父类之间，重写要求子类重写方法和父类被重写方法有相同的返回类型，比父类被重写方法更好访问，不能比父类被重写方法声明更多的异常（LSP里氏替换原]]></description><category></category></item><item><title><![CDATA[Java中的异常处理机制是什么]]></title><link>https://blog.youkuaiyun.com/newflyer666/article/details/118058137</link><guid>https://blog.youkuaiyun.com/newflyer666/article/details/118058137</guid><author>newflyer666</author><pubDate>Sat, 19 Jun 2021 19:55:52 +0800</pubDate><description><![CDATA[Java异常处理方式

Java通过面向对象的方法进行异常处理，一旦方法抛出异常，系统自动根据该异常对象寻找合适异常处理器（Exception Handler）来处理该异常，把各种不同的异常进行分类，并提供了良好的接口。在java中，每个异常都是一个对象，它是Throwable类或其子类的实例。当一个方法出现异常后便抛出一个异常对象，该对象中包含有异常信息，调用这个对象的方法可以捕获到这个异常并可以对其进行处理。Java的异常是通过五个关键字来实现的：try、catch、throw、throws和final]]></description><category></category></item><item><title><![CDATA[Java中==和equals有哪些区别]]></title><link>https://blog.youkuaiyun.com/newflyer666/article/details/118057931</link><guid>https://blog.youkuaiyun.com/newflyer666/article/details/118057931</guid><author>newflyer666</author><pubDate>Sat, 19 Jun 2021 19:22:17 +0800</pubDate><description><![CDATA[equals和==最大的区别就是一个是方法一个是运算符。
==：如果比较的对象是基本数据类型，则比较的是数值是否相等；如果比较的是引用数据类型，则比较的是对象的地址值是否相等。
equals：用来比较两个对象的内容是否相等。
但是注意：equals方法不能用于基本数据类型的变量，如果没有对equals进行重写，则比较的是引用类型的变量所指向的对象的地址。比如我们编写一个java bean类，但是类中没有重写equals方法，然后我们实例化了两个变量a和b，给a和b的内容是相同的，这时候如果用equals比较]]></description><category></category></item><item><title><![CDATA[Java接口和抽象类有哪些区别]]></title><link>https://blog.youkuaiyun.com/newflyer666/article/details/118057525</link><guid>https://blog.youkuaiyun.com/newflyer666/article/details/118057525</guid><author>newflyer666</author><pubDate>Sat, 19 Jun 2021 18:46:29 +0800</pubDate><description><![CDATA[相同点：
a. 不能够实例化
b. 可以将抽象类和接口类型作为引用类型
c. 一个类如果继承了某个抽象类或者实现了某个接口都需要对其中的抽象方法全部进行实现，否则该类仍然需要被声明为抽象类。
不同点：

抽象类中可以定义构造器，而接口不能定义构造器
抽象类中可以有抽象方法和具体方法，而接口的方法全是抽象方法
抽象类中的成员可以是private、protected、public和默认的，而接口中的成员全部都是public的
有抽象方法的类必须被声明为抽象类，而抽象类未必要有抽象方法，接口定义的成员变量实际上都]]></description><category></category></item><item><title><![CDATA[高并发中的集合类有哪些问题]]></title><link>https://blog.youkuaiyun.com/newflyer666/article/details/118056979</link><guid>https://blog.youkuaiyun.com/newflyer666/article/details/118056979</guid><author>newflyer666</author><pubDate>Sat, 19 Jun 2021 17:57:52 +0800</pubDate><description><![CDATA[高并发中的集合类的主要问题就是线程安全问题，我们可以通过JDK中集合类的发展来观察集合类都有哪些问题以及如何解决。
第一代线程安全集合类
Vector、HashTable
是线程安全的：使用synchronized修饰方法。
缺点：加上同步锁之后保证线程安全了但是同时也导致了效率低下
后来，jdk的作者发现其实大多数情况下这种集合类是用不到线程安全的，所以就诞生了线程非安全集合类
第二代线程非安全集合类
ArrayList、HashMap
线程不安全，但是性能好，用来替代Vector、HashTable
使]]></description><category></category></item><item><title><![CDATA[ArrayList和LinkedList的区别]]></title><link>https://blog.youkuaiyun.com/newflyer666/article/details/118052346</link><guid>https://blog.youkuaiyun.com/newflyer666/article/details/118052346</guid><author>newflyer666</author><pubDate>Sat, 19 Jun 2021 17:36:59 +0800</pubDate><description><![CDATA[ArrayList和LinkedList都实现了List接口，他们具有以下的不同点：
ArrayList是基于索引的数据接口，它的底层数据结构是由动态数组实现的。它可以以O（1）的时间复杂度对元素进行随机访问。而LinkedList是以元素列表的形式存储数据的，底层数据结构是双向链表，每一个元素都和它的前一个和后一个元素链接在一起，在这种情况下，查找某个元素的时间复杂度是O（n）。
相对于ArrayList，LinkedList的插入，添加，删除操作速度更快，因为当元素被添加到集合任意位置时，不需要想数组那]]></description><category></category></item><item><title><![CDATA[Java面向对象有哪些特征]]></title><link>https://blog.youkuaiyun.com/newflyer666/article/details/118051670</link><guid>https://blog.youkuaiyun.com/newflyer666/article/details/118051670</guid><author>newflyer666</author><pubDate>Sat, 19 Jun 2021 12:24:00 +0800</pubDate><description><![CDATA[面向对象编程是利用类和对象编程的一种思想。万物可归类，类是对于世界上的事物的高度抽象，不同的事物之间有不同的关系，一个类自身与外界的封装关系，一个父类和子类的继承关系，一个类和多个类的多态关系。万物皆对象，对象是具体的世界事物。
面向对象的三大特征：封装，继承，多态。
封装隐藏了类的内部实现机制，可以在不影响使用的情况下改变类的内部结构，同时也保护了数据。对外界而言，它的内部细节是不公开的，暴露给外界的只是它的访问方法。属性的封装：使用者只能通过实现定制好的方法来访问数据，比如最常见的set和get方法，可]]></description><category></category></item><item><title><![CDATA[Maven项目在new module后，pom文件显示为Ignored pom.xml]]></title><link>https://blog.youkuaiyun.com/newflyer666/article/details/116195526</link><guid>https://blog.youkuaiyun.com/newflyer666/article/details/116195526</guid><author>newflyer666</author><pubDate>Tue, 27 Apr 2021 11:33:06 +0800</pubDate><description><![CDATA[Maven项目在创建module后，pom文件显示为Ignored pom.xml


原因： 是因为我之前就已经创建了同名的module，但后来删掉了，之后又创建和之前删除掉的module同名的module。由于相同名称的module之前被创建过，所以在idea中留有痕迹，现在重新创建同名的module，让idea误认为是之前删除的module，所以idea就自动将这个pom文件给忽略了。父工程中的pom文件中也会保留上一个已删除module的配置。

解决：

点击File-》Settings-》Bui]]></description><category></category></item><item><title><![CDATA[Maven项目pom.xml导入了Junit包还是用不了@Test注解]]></title><link>https://blog.youkuaiyun.com/newflyer666/article/details/116193512</link><guid>https://blog.youkuaiyun.com/newflyer666/article/details/116193512</guid><author>newflyer666</author><pubDate>Tue, 27 Apr 2021 10:49:24 +0800</pubDate><description><![CDATA[在创建的maven项目中，pom文件明明已经导入了Junit的依赖了，但还是用不了@Test注解。
添加依赖没问题：

但@Test注解在提示中找不到

原来是我在添加依赖时还引入了&lt;scope&gt;标签，它主要是用来管理依赖的部署。目前&lt;scope&gt;可以使用的值有5个：

compile ： 缺省值，适用于所有阶段，会随着项目一起发布
provided ：类似于compile，期望jdk，容器或使用者会提供这个依赖，如servlet.jar。
runtime ：只在运行时使用，如JDB]]></description><category></category></item><item><title><![CDATA[第七章 面向对象三大特性之封装]]></title><link>https://blog.youkuaiyun.com/newflyer666/article/details/115567898</link><guid>https://blog.youkuaiyun.com/newflyer666/article/details/115567898</guid><author>newflyer666</author><pubDate>Sat, 10 Apr 2021 12:20:07 +0800</pubDate><description><![CDATA[7.1 封装
7.1.1 概述
面向对象编程是对客观世界的模拟，客观世界里面成员变量都是隐藏在对象内部的，外部是不能直接修改和查看的。比如有一个学生类，里面有学生的信息，而我是一个学生对象，我自己的信息当然不希望誰都能查看和修改。这时候就需要用到封装的概念，我把信息都存在了我的ID卡里，誰想要查看我的信息，就可以通过我的ID卡来识别。封装就相当于一个保护屏，防止该类的代码和数据被其他类随意访问。封装的原则就是将属性隐藏起来，若外部需要访问某个属性，提供公共方法对其访问。
7.1.2 封装操作
步骤：
1.使]]></description><category></category></item><item><title><![CDATA[第六章 面向对象之类和对象]]></title><link>https://blog.youkuaiyun.com/newflyer666/article/details/115448229</link><guid>https://blog.youkuaiyun.com/newflyer666/article/details/115448229</guid><author>newflyer666</author><pubDate>Sat, 10 Apr 2021 11:03:14 +0800</pubDate><description><![CDATA[6.1 面向对象思想
6.1.1面向对象概述
-概述：Java语言是一种面向对象的程序设计语言，面向对象思想是一种程序设计思想。这里的对象是指现实中的一切事物，每种事物都具备自己的属性和行为。面向对象思想就是将计算机程序设计中，参照现实中的事物，将事物的属性特征，行为特征抽象出来，描述成计算机事件的设计思想。
这样描述可能不好理解，举个例子：
洗衣服

面向过程：脱衣服-&gt;放进盆里-&gt;放洗衣粉-&gt;放水浸泡-&gt;揉搓揉搓揉搓-&gt;干净的水过一遍-&gt;拧干-&gt;晾起来
面向对象]]></description><category></category></item><item><title><![CDATA[第五章 Java数组]]></title><link>https://blog.youkuaiyun.com/newflyer666/article/details/115443122</link><guid>https://blog.youkuaiyun.com/newflyer666/article/details/115443122</guid><author>newflyer666</author><pubDate>Mon, 05 Apr 2021 20:50:50 +0800</pubDate><description><![CDATA[5.1 容器概念
情景分析：现在需要统计一个班级里面的身高状况，比如平均身高，最高身高等，假如该班级有50个人，用之前变量的知识，那么就需要创建50个变量来记住每个人的身高，然后再对这50个变量进行操作，这样就会很麻烦，而且错误率也高。因此我们可以用容器来操作，将所有数据存入一个容器中，统一操作。

容器：是将多个数据存储在一起，每个数据称为容器的一个元素。
生活中的容器：水杯，书架，教室等等。

5.2 数组
5.2.1 概念
数组就是存储数据长度固定的容器，保证容器中的各个数据的数据类型要一致。
5.2]]></description><category></category></item><item><title><![CDATA[第四章 流程控制]]></title><link>https://blog.youkuaiyun.com/newflyer666/article/details/115428716</link><guid>https://blog.youkuaiyun.com/newflyer666/article/details/115428716</guid><author>newflyer666</author><pubDate>Mon, 05 Apr 2021 14:44:05 +0800</pubDate><description><![CDATA[在一个程序运行的过程中，各个语句的执行顺序对程序的执行结果是有直接影响的。所以我们必须清楚每条语句的执行流程。而且，很多时候我们需要控制语句执行的顺序来实现我们要完成的功能。
4.1 分类

顺序结构
分支结构（if，switch）
循环结构（for，while，do…while）

4.2 顺序结构
public static void main(String[] args) {
        //顺序执行，根据编写的顺序，从上到下执行
        byte b = 100;
        Sys]]></description><category></category></item><item><title><![CDATA[第三章 变量和数据类型]]></title><link>https://blog.youkuaiyun.com/newflyer666/article/details/115421631</link><guid>https://blog.youkuaiyun.com/newflyer666/article/details/115421631</guid><author>newflyer666</author><pubDate>Sun, 04 Apr 2021 14:40:55 +0800</pubDate><description><![CDATA[3.1 常量
在介绍java中的变量和数据类型之前，先了解一下java中的常量。
常量：是指在java程序中固定不变的的数据。
分类：

整数常量：所有的整数，如0，1，134，-8等
小数常量：所有的小数，如0.0，1.5，5.673，-20.9等
字符常量：单引号引起来，只能写一个字符，必须有内容，如’s’，‘你’，’。’，’$'等
字符串常量：双引号引起来可以写多个字符，也可以不写，比如"A"，“你好”，“Hello，World”，""等等。
布尔常量：只有两个值true和false。常用与流程控制。]]></description><category></category></item><item><title><![CDATA[第二章 HelloWorld入门]]></title><link>https://blog.youkuaiyun.com/newflyer666/article/details/115408014</link><guid>https://blog.youkuaiyun.com/newflyer666/article/details/115408014</guid><author>newflyer666</author><pubDate>Sat, 03 Apr 2021 21:52:27 +0800</pubDate><description><![CDATA[2.1 java程序开发步骤
HelloWorld程序案例是指在计算机屏幕上打印出“Hello World”的字样。各种计算机语言都习惯将这个程序作为程序开发的第一个案例。
java程序开发三步骤：编写，编译，运行。

javac.exe：编译器
java.exe：解释器
2.2 编写第一个java程序
public class HelloWorld { 
	public static void main(String[] args) { 
		System.out.println("Hello World]]></description><category></category></item><item><title><![CDATA[第一章 Java前言]]></title><link>https://blog.youkuaiyun.com/newflyer666/article/details/115319685</link><guid>https://blog.youkuaiyun.com/newflyer666/article/details/115319685</guid><author>newflyer666</author><pubDate>Thu, 01 Apr 2021 12:27:58 +0800</pubDate><description><![CDATA[1.1 Java语言概述
什么是java语言
java语言是美国Sun公司（Stanford University Network），在1995年推出的高级的编程语言。所谓编程语言，是计算机的语言，人们可以使用编程语言对计算机下达指令，让计算机完成人们需要的功能那个。
2009年，Sun公司被甲骨文公司收购，所以我们现在访问oracle官网即可：https://www.oracle.com。Java语言创始人

...]]></description><category></category></item><item><title><![CDATA[## java流程控制for循环中continue，break，return的区别]]></title><link>https://blog.youkuaiyun.com/newflyer666/article/details/114496153</link><guid>https://blog.youkuaiyun.com/newflyer666/article/details/114496153</guid><author>newflyer666</author><pubDate>Sun, 07 Mar 2021 20:14:48 +0800</pubDate><description><![CDATA[java流程控制for循环中continue，break，return的区别
示例程序
public static void main(String[] args) {
        for(int i=0;i&lt;10;i++){
            if(i==5){
                break;
                //continue;
                //return;
            }
            System.out.p]]></description><category></category></item></channel></rss>