<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[urbeen的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/urbeen</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; urbeen]]></copyright><item><title><![CDATA[Java面试 -- 并发]]></title><link>https://blog.youkuaiyun.com/urbeen/article/details/116104700</link><guid>https://blog.youkuaiyun.com/urbeen/article/details/116104700</guid><author>urbeen</author><pubDate>Sun, 25 Apr 2021 07:45:14 +0800</pubDate><description><![CDATA[创建多线程的四种方法
继承 thread类
实现runnable接口
实现callable接口
线程池
Callable接口和FutureTask
创建一个实现callable的实现类，重写call方法
创建一个callable实现类的对象
将callable实现类的对象作为参数，传递给futuretask的构造器，创建FutureTask的对象
将FutureTask的对象作为参数再传递给thread类的构造器，创建thread对象，并启动
通过futuretask类的对象调用方法get获取线程中的返回值]]></description><category></category></item><item><title><![CDATA[Java面试 - Java集合]]></title><link>https://blog.youkuaiyun.com/urbeen/article/details/115989383</link><guid>https://blog.youkuaiyun.com/urbeen/article/details/115989383</guid><author>urbeen</author><pubDate>Sat, 24 Apr 2021 20:38:38 +0800</pubDate><description><![CDATA[说一说 List  Set  Map的区别
List	存储的元素是有序的，是可以重复的
Set   无序的，不可重复的
Map 一对一对的，双列集合，key是无序的，不可重复的，value是无序的，可重复的
List
存储有序的，可重复的数据，动态数组，替换原来的数组
https://juejin.cn/post/6845166891397300238

ArrayList  线程不安全，


...]]></description><category></category></item><item><title><![CDATA[Java面试 -  String和Integer对象  == 和 equals比较   问题汇总]]></title><link>https://blog.youkuaiyun.com/urbeen/article/details/115987718</link><guid>https://blog.youkuaiyun.com/urbeen/article/details/115987718</guid><author>urbeen</author><pubDate>Thu, 22 Apr 2021 01:41:24 +0800</pubDate><description><![CDATA[== 和equals()
==   它的作用是判断两个对象的地址是不是相等，即判断两个对象是不是同一个对象
基本数据类型比较的是值，引用数据类型比较的是地址
equals()  是判断两个对象是否相等，如果没有重写equals() 方法，就和两个等号的意思是一样的
为什么要有hashcode？
为了减少equals()的比较次数，只要当hashcode相同的时候才会进行equals()的比较，极大提高了效率
为什么重写了equals()后就要重写hashcode方法
如果不重写hashcode方法的话，两个]]></description><category></category></item><item><title><![CDATA[Java面试题-各种流程问题]]></title><link>https://blog.youkuaiyun.com/urbeen/article/details/115895057</link><guid>https://blog.youkuaiyun.com/urbeen/article/details/115895057</guid><author>urbeen</author><pubDate>Tue, 20 Apr 2021 15:12:24 +0800</pubDate><description><![CDATA[Mybatis的执行流程

首先加载Mybatis的核心配置文件，如果根据核心配置文件生成Configuration对象和一个个MapperStatement对象；
SqlSessionFactoryBuilder通过Configuration对象生成SqlsessionFactory，用来开启Sqlsession
Sqlsession完成和数据库的交互

首先加载Mybatis的核心配置文件，如果根据核心配置文件生成Configuration对象和一个个MapperStatement对象；
SqlSess]]></description><category></category></item><item><title><![CDATA[Java常用类（3）]]></title><link>https://blog.youkuaiyun.com/urbeen/article/details/114384317</link><guid>https://blog.youkuaiyun.com/urbeen/article/details/114384317</guid><author>urbeen</author><pubDate>Fri, 05 Mar 2021 10:11:00 +0800</pubDate><description><![CDATA[String: 不可变的字符序列
StringBuffer可变的字符序列 线程安全的 效率低的
StringBuilder 可变的字符序列 JDK5.0 新增的   线程不安全的  效率高的
底层都是用char数组存储
底层源码分析
String str = new String();// char value = new char[0];
String str1 = new String(“abc”); //char[] value = new char[]{‘a’,‘b’,‘c’}
StringBuff]]></description><category></category></item><item><title><![CDATA[Java高级--常用类（2）String的常用方法]]></title><link>https://blog.youkuaiyun.com/urbeen/article/details/113704320</link><guid>https://blog.youkuaiyun.com/urbeen/article/details/113704320</guid><author>urbeen</author><pubDate>Fri, 05 Feb 2021 21:36:44 +0800</pubDate><description><![CDATA[1
int length()：返回字符串的长度： return value.length
char charAt(int index)： 返回某索引处的字符return value[index]
boolean isEmpty()：判断是否是空字符串：return value.length == 0
String toLowerCase()：使用默认语言环境，将 String 中的所有字符转换为小写
String toUpperCase()：使用默认语言环境，将 String 中的所有字符转换为大写
Str]]></description><category></category></item><item><title><![CDATA[Java高级--常用类（1）String类]]></title><link>https://blog.youkuaiyun.com/urbeen/article/details/113703866</link><guid>https://blog.youkuaiyun.com/urbeen/article/details/113703866</guid><author>urbeen</author><pubDate>Fri, 05 Feb 2021 21:04:37 +0800</pubDate><description><![CDATA[String类
String 字符串  使用一对“”引起来表示
String  声明是final的，不可被继承
String 实现了Serializable 接口 表示字符串是支持序列化的
​			实现了Comparable接口 表示字符串是可以比较大小的
String内部定义了final char value[] 用来存储字符串数据
String 代表不可变的字符序列
通过字面量的方式（区别于new）给一个字符串赋值，此时的字符串值声明在字符串常量池中
字符串常量池中是不会存储相同内容的字符串的，相同内容]]></description><category></category></item><item><title><![CDATA[Java高级--多线程（5）Callable和线程池]]></title><link>https://blog.youkuaiyun.com/urbeen/article/details/113604970</link><guid>https://blog.youkuaiyun.com/urbeen/article/details/113604970</guid><author>urbeen</author><pubDate>Wed, 03 Feb 2021 14:49:14 +0800</pubDate><description><![CDATA[创建多线程的方式三 ： 实现Callable接口 --JDK5.0新增
与Runnable相比，Callable功能更强大些


相比与run方法，可以有返回值


方法可以抛出异常


支持泛型的返回值


需要借助FutureTask类，比如获取返回结果


Future接口


可以对具体Runnable、Callable任务的执行结果进行取消、查询是 否完成、获取结果等。


FutrueTask是Futrue接口的唯一的实现类


FutureTask 同时实现了Runnable, Future接]]></description><category></category></item><item><title><![CDATA[Java高级--多线程（4） 线程通信的例子]]></title><link>https://blog.youkuaiyun.com/urbeen/article/details/113599040</link><guid>https://blog.youkuaiyun.com/urbeen/article/details/113599040</guid><author>urbeen</author><pubDate>Wed, 03 Feb 2021 13:17:48 +0800</pubDate><description><![CDATA[线程通信的例子
线程通信的例子：使用两个线程打印 1-100。线程1, 线程2 交替打印
package com.chen.exer;

public class CommunicationTest {
    public static void main(String[] args) {
        Number number1 = new Number();

        Thread t1 = new Thread(number1);
        Thread t2 = new Thre]]></description><category></category></item><item><title><![CDATA[Java高级--多线程（3）  Lock锁]]></title><link>https://blog.youkuaiyun.com/urbeen/article/details/113596639</link><guid>https://blog.youkuaiyun.com/urbeen/article/details/113596639</guid><author>urbeen</author><pubDate>Wed, 03 Feb 2021 12:40:33 +0800</pubDate><description><![CDATA[解决线程安全的方式三  Lock锁  JDK5.0新增
package com.chen.lock;

import java.util.concurrent.locks.ReentrantLock;

public class LockTest01 {
    public static void main(String[] args) {
        Windows w = new Windows();

        Thread t1 = new Thread(w);
        Thre]]></description><category></category></item><item><title><![CDATA[单例模式]]></title><link>https://blog.youkuaiyun.com/urbeen/article/details/113555003</link><guid>https://blog.youkuaiyun.com/urbeen/article/details/113555003</guid><author>urbeen</author><pubDate>Tue, 02 Feb 2021 14:20:39 +0800</pubDate><description><![CDATA[定义
所谓的类的单例设计模式，就是采取一定的方式保证在整个软件过程中，对某一个类只能存在一个对象实例
如何实现
我们首先必须将类的构 造器的访问权限设置为private，这样，就不能用new操作符在类的外部产生 类的对象了，但在类内部仍可以产生该类的对象。因为在类的外部开始还无 法得到类的对象，只能调用该类的某个静态方法以返回类内部创建的对象， 静态方法只能访问类中的静态成员变量，所以，指向类内部产生的该类对象 的变量也必须定义成静态的。
饿汉式
package com.chen;

import org.]]></description><category></category></item><item><title><![CDATA[Java高级--多线程（2）多线程实例和线程安全问题解决方案]]></title><link>https://blog.youkuaiyun.com/urbeen/article/details/113287813</link><guid>https://blog.youkuaiyun.com/urbeen/article/details/113287813</guid><author>urbeen</author><pubDate>Thu, 28 Jan 2021 00:56:38 +0800</pubDate><description><![CDATA[多线程实例
三个窗口同时卖一百张票  但是未解决线程安全问题
继承Thread类
package thread;

public class WindowsTest {
    public static void main(String[] args) {
        Window t1 = new Window();
        Window t2 = new Window();
        Window t3 = new Window();

        t1.setName("窗口一]]></description><category></category></item><item><title><![CDATA[Java高级--多线程（1） 多线程基础知识]]></title><link>https://blog.youkuaiyun.com/urbeen/article/details/113285573</link><guid>https://blog.youkuaiyun.com/urbeen/article/details/113285573</guid><author>urbeen</author><pubDate>Thu, 28 Jan 2021 00:14:25 +0800</pubDate><description><![CDATA[实现多线程的方式
继承Thread类
实现Runnable接口
都要重写run方法
暂时就是这两种
继承Thread类
public class TestThread01 {
    public static void main(String[] args) {
        MyThread01 myThread01 = new MyThread01("线程一");
}

class MyThread01 extends Thread {
    @Override
    public void r]]></description><category></category></item><item><title><![CDATA[双向链表基本操作代码]]></title><link>https://blog.youkuaiyun.com/urbeen/article/details/107441068</link><guid>https://blog.youkuaiyun.com/urbeen/article/details/107441068</guid><author>urbeen</author><pubDate>Sun, 19 Jul 2020 09:51:45 +0800</pubDate><description><![CDATA[/*
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

						   ⚝ 学习不入神，子枫嫁别人 ⚝

   Author: ChenFeng

   Time: 2020年07月17日 08:14:19
   
   Describe $Used to do something$

						   ⚝ 认真小阿晨，子枫娶进门 ⚝

 * * * * * * * * * * * .]]></description><category></category></item><item><title><![CDATA[单链表基本操作代码]]></title><link>https://blog.youkuaiyun.com/urbeen/article/details/107306282</link><guid>https://blog.youkuaiyun.com/urbeen/article/details/107306282</guid><author>urbeen</author><pubDate>Sun, 12 Jul 2020 21:59:02 +0800</pubDate><description><![CDATA[#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;

typedef int ElemType;

typedef struct LNode{
	ElemType data;
	struct LNode *next;
}LNode,*LinkList;

 //头插法建立单链表
LinkList Link_HeadInsert(LinkList &amp;L){  
	LNode *s;
	int x;
	L = (LinkList)malloc(size.]]></description><category></category></item><item><title><![CDATA[数据分析与数据挖掘（1）Python基础知识]]></title><link>https://blog.youkuaiyun.com/urbeen/article/details/103578813</link><guid>https://blog.youkuaiyun.com/urbeen/article/details/103578813</guid><author>urbeen</author><pubDate>Wed, 18 Dec 2019 15:32:16 +0800</pubDate><description><![CDATA[in:name example 名字中有“example”
in:readme example readme中有“example”
in:description example 描述中有“example”
stars:&gt;1000 star&gt;1000
forks:&gt;1000 fork&gt;1000
pushed:&gt;2019-09-01 2019年9月1日后有更新的


l...]]></description><category></category></item><item><title><![CDATA[POJ-3278]]></title><link>https://blog.youkuaiyun.com/urbeen/article/details/102015901</link><guid>https://blog.youkuaiyun.com/urbeen/article/details/102015901</guid><author>urbeen</author><pubDate>Thu, 03 Oct 2019 20:32:20 +0800</pubDate><description><![CDATA[#include&lt;iostream&gt;
#include&lt;string&gt;
#include&lt;queue&gt;

using namespace std;
struct node {
	int n;
	int step;
};

int  BFS(int start,int end) {
	queue&lt;node&gt; q;
	node S;
	S.n = st...]]></description><category></category></item><item><title><![CDATA[每日一题  POJ-2251 三维迷宫]]></title><link>https://blog.youkuaiyun.com/urbeen/article/details/102003041</link><guid>https://blog.youkuaiyun.com/urbeen/article/details/102003041</guid><author>urbeen</author><pubDate>Thu, 03 Oct 2019 16:54:47 +0800</pubDate><description><![CDATA[#include&lt;iostream&gt;
#include&lt;string&gt;
#include&lt;queue&gt;

using namespace std;
const int maxz = 31;
int mov[6][3] = { {1,0,0},{-1,0,0},{0,1,0},{0,-1,0},{0,0,1},{0,0,-1} };
int L, R,C;
ch...]]></description><category></category></item><item><title><![CDATA[每日一题  POJ-2251前戏  简单搜索  BFS和DBFS]]></title><link>https://blog.youkuaiyun.com/urbeen/article/details/101690141</link><guid>https://blog.youkuaiyun.com/urbeen/article/details/101690141</guid><author>urbeen</author><pubDate>Tue, 01 Oct 2019 23:08:47 +0800</pubDate><description><![CDATA[思考过程：三维数组？？？

BFS(广度优先遍历)的扩展。先写一个二维的练练手


#include&lt;iostream&gt;
#include&lt;cstdio&gt;
#include&lt;cstring&gt;
#include&lt;queue&gt;

using namespace std;

const int maxn = 100;

struct Node {
	int...]]></description><category></category></item><item><title><![CDATA[每日一题  最大子矩阵   动态规划问题]]></title><link>https://blog.youkuaiyun.com/urbeen/article/details/101861703</link><guid>https://blog.youkuaiyun.com/urbeen/article/details/101861703</guid><author>urbeen</author><pubDate>Tue, 01 Oct 2019 21:21:26 +0800</pubDate><description><![CDATA[看了好多文章，就了解一下，最大字段和、最大子矩阵的问题

https://blog.youkuaiyun.com/Double2hao/article/details/51727420  最大子矩阵--他动态规划的那一段代码我认为是有问题的

https://blog.youkuaiyun.com/lihao21/article/details/7216579




#include&lt;cstdio&gt;
#...]]></description><category></category></item></channel></rss>