<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Mars1997的博客]]></title><description><![CDATA[。。。]]></description><link>https://blog.youkuaiyun.com/Mars1997</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Mars1997]]></copyright><item><title><![CDATA[工厂模式及抽象工厂模式]]></title><link>https://blog.youkuaiyun.com/Mars1997/article/details/98040772</link><guid>https://blog.youkuaiyun.com/Mars1997/article/details/98040772</guid><author>Mars1997</author><pubDate>Thu, 01 Aug 2019 17:10:21 +0800</pubDate><description><![CDATA[工厂模式
工厂模式属于创建型模式，它提供了一种创建对象的最佳方式。
在工厂模式中，我们在创建对象时不会对客户端暴露创建逻辑，并且是通过使用一个共同的接口来指向新创建的对象。
工厂模式主要解决接口选择的问题，定义一个创建对象的接口，让其子类自己决定实例化哪一个工厂类，工厂模式使其创建过程延迟到子类进行。
优点：
1、一个调用者想创建一个对象，只要知道其名称就可以了。
2、扩展性高，如果想增加一个产品...]]></description><category></category></item><item><title><![CDATA[单例模式]]></title><link>https://blog.youkuaiyun.com/Mars1997/article/details/97967113</link><guid>https://blog.youkuaiyun.com/Mars1997/article/details/97967113</guid><author>Mars1997</author><pubDate>Thu, 01 Aug 2019 00:15:39 +0800</pubDate><description><![CDATA[单例模式
单例模式确保一个类只有一个实例，并提供一个访问它的全局访问点。那么单例模式有什么用途呢？
当我们想控制实例数从而节省系统资源或是存在一个类频繁的创建与销毁，就可以使用单例模式。
例模式的特点：
1.单例类只能有一个实例。
2.单例类必须自己创建自己唯一的实例。
3.单例类必须给所有其他对象提供这一实例。
单例模式的线程安全问题：
1.获取单例时，要保证不能产生多个实例对象。
2.在使用单...]]></description><category></category></item><item><title><![CDATA[线程池]]></title><link>https://blog.youkuaiyun.com/Mars1997/article/details/89850019</link><guid>https://blog.youkuaiyun.com/Mars1997/article/details/89850019</guid><author>Mars1997</author><pubDate>Tue, 07 May 2019 00:19:23 +0800</pubDate><description><![CDATA[线程池
线程池：
线程池是一种多线程处理形式，处理过程中将任务添加到队列，然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小，以默认的优先级运行，并处于多线程单元中。如果某个线程在托管代码中空闲（如正在等待某个事件），则线程池将插入另一个辅助线程来使所有处理器保持繁忙。如果所有线程池线程都始终保持繁忙，但队列中包含挂起的工作，则线程池将在一段时间后创建另一个辅助...]]></description><category></category></item><item><title><![CDATA[ConcurrentHashMap]]></title><link>https://blog.youkuaiyun.com/Mars1997/article/details/89527753</link><guid>https://blog.youkuaiyun.com/Mars1997/article/details/89527753</guid><author>Mars1997</author><pubDate>Fri, 26 Apr 2019 00:21:21 +0800</pubDate><description><![CDATA[ConcurrentHashMap引入了分段锁的概念。将数据分成一段一段的存储，然后给每一段数据配一把锁，当一个线程占用锁访问其中一个段数据的时候，其他段的数据也能被其他线程访问，能够实现真正的并发访问。
首先先来看一些基本的属性：
//初始容量，这个值指的是整个 ConcurrentHashMap 的初始容量
static final int DEFAULT_INITIAL_CAPACITY =...]]></description><category></category></item><item><title><![CDATA[从尾到头打印链表]]></title><link>https://blog.youkuaiyun.com/Mars1997/article/details/89479855</link><guid>https://blog.youkuaiyun.com/Mars1997/article/details/89479855</guid><author>Mars1997</author><pubDate>Tue, 23 Apr 2019 19:59:30 +0800</pubDate><description><![CDATA[问题描述： 输入一个链表，按链表值从尾到头的顺序返回一个ArrayList。
/**
*    public class ListNode {
*        int val;
*        ListNode next = null;
*
*        ListNode(int val) {
*            this.val = val;
*        }
*    }
*...]]></description><category></category></item><item><title><![CDATA[替换空格]]></title><link>https://blog.youkuaiyun.com/Mars1997/article/details/89462898</link><guid>https://blog.youkuaiyun.com/Mars1997/article/details/89462898</guid><author>Mars1997</author><pubDate>Mon, 22 Apr 2019 22:45:29 +0800</pubDate><description><![CDATA[问题描述：
请实现一个函数，将一个字符串中的每个空格替换成“%20”。例如，当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
1、最简单的办法：直接使用java里的replaceAll（）方法。
public class Solution {
    public String replaceSpace(StringBuffer str) {
    ...]]></description><category></category></item><item><title><![CDATA[二维数组中的查找]]></title><link>https://blog.youkuaiyun.com/Mars1997/article/details/89461653</link><guid>https://blog.youkuaiyun.com/Mars1997/article/details/89461653</guid><author>Mars1997</author><pubDate>Mon, 22 Apr 2019 21:54:32 +0800</pubDate><description><![CDATA[题目描述
在一个二维数组中（每个一维数组的长度相同），每一行都按照从左到右递增的顺序排序，每一列都按照从上到下递增的顺序排序。请完成一个函数，输入这样的一个二维数组和一个整数，判断数组中是否含有该整数。
public class Solution {
    public boolean Find(int target, int [][] array) {
//从左下角角查（从右上角查也可以）
 ...]]></description><category></category></item><item><title><![CDATA[Java IO流]]></title><link>https://blog.youkuaiyun.com/Mars1997/article/details/89194046</link><guid>https://blog.youkuaiyun.com/Mars1997/article/details/89194046</guid><author>Mars1997</author><pubDate>Fri, 12 Apr 2019 20:23:52 +0800</pubDate><description><![CDATA[Java IO即Java输入输出系统。在Java IO中，流是一个核心的概念。流的本质是一组有序的数据集合。既可以从流中读取数据，也可以往流中写数据。在Java IO中流既可以是字节流(以字节为单位进行读写)，也可以是字符流(以字符为单位进行读写)。
流的分类：
1.按照流的方向：

输入流：InputStream和Reader（读取外部数据（文件、磁盘，网络等）到程序中）
输出流：OutputS...]]></description><category></category></item><item><title><![CDATA[Java运算符]]></title><link>https://blog.youkuaiyun.com/Mars1997/article/details/88934169</link><guid>https://blog.youkuaiyun.com/Mars1997/article/details/88934169</guid><author>Mars1997</author><pubDate>Sun, 31 Mar 2019 19:54:53 +0800</pubDate><description><![CDATA[Java运算符分类
运算符指明对操作数的运算方式。组成表达式的Java操作符有很多种。
按照操作数数目来分，可以分为以下三类：

单目运算符，有一个操作数。
双目运算符，有两个操作数。
三目运算符，有三个操作数。

按功能来分，可以分为以下六类：

算术运算符
赋值运算符
关系运算符
逻辑运算符
位运算符
其他运算符

Java运算符优先级
当一个表达式中存在多个操作符时，操作符的优先级决定了各部...]]></description><category></category></item><item><title><![CDATA[Java简介、主要特性，基本语法]]></title><link>https://blog.youkuaiyun.com/Mars1997/article/details/88880633</link><guid>https://blog.youkuaiyun.com/Mars1997/article/details/88880633</guid><author>Mars1997</author><pubDate>Fri, 29 Mar 2019 20:24:42 +0800</pubDate><description><![CDATA[Java简介
Java是由Sun Microsystems公司于1995年5月推出的Java面向对象
程序设计语言和Java平台的总称。由James Gosling和同事们共同研发，并在1995年正式推出。
Java的主要特性
简单性：
Java语言的语法与C++语法很接近，使得大多数程序员很容易学习和使用。另一方面，Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性，如头文件，操作...]]></description><category></category></item><item><title><![CDATA[Java多线程实现复制文件]]></title><link>https://blog.youkuaiyun.com/Mars1997/article/details/82854482</link><guid>https://blog.youkuaiyun.com/Mars1997/article/details/82854482</guid><author>Mars1997</author><pubDate>Wed, 26 Sep 2018 15:49:59 +0800</pubDate><description><![CDATA[package problem;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.RandomAccessFile;

/**
 * 多线程复制文件
 */
public class CopyFile {
    public static void main(String[] args) thro...]]></description><category></category></item><item><title><![CDATA[Linux网络]]></title><link>https://blog.youkuaiyun.com/Mars1997/article/details/81317270</link><guid>https://blog.youkuaiyun.com/Mars1997/article/details/81317270</guid><author>Mars1997</author><pubDate>Tue, 31 Jul 2018 18:10:18 +0800</pubDate><description><![CDATA[网络：网络是把不同的计算机连接起来就构成了网络 
目的：资源共享，信息交互 
构成网络：传输介质：双绞线   同轴电联   光纤 
网络设备：交换机   路由器  

互联网：把网络和网络连接起来就构成了互联网

ip地址：网络号+主机号

计算机网络 

端口      标识一个应用程序 
端口不能重复 
1024以内 
1024~4096 
以上   临时端口

分层：ISO的osi模型 7层...]]></description><category></category></item><item><title><![CDATA[脚本与脚本的调用]]></title><link>https://blog.youkuaiyun.com/Mars1997/article/details/81304785</link><guid>https://blog.youkuaiyun.com/Mars1997/article/details/81304785</guid><author>Mars1997</author><pubDate>Tue, 31 Jul 2018 17:19:50 +0800</pubDate><description><![CDATA[脚本(一般.sh结尾)  
程序中加双引号与不加差距不大（是弱引用），依然可以给变量取值，但是如果有空格必须加上。 
单引号强引用，直接输出字符 
赋值等号两边不可以有空格，有空格则变成判断是否相等 
 #注释 
 ...]]></description><category></category></item><item><title><![CDATA[linux文件查找，过滤，打包，系统运行级别，进程线程]]></title><link>https://blog.youkuaiyun.com/Mars1997/article/details/81304141</link><guid>https://blog.youkuaiyun.com/Mars1997/article/details/81304141</guid><author>Mars1997</author><pubDate>Tue, 31 Jul 2018 15:33:26 +0800</pubDate><description><![CDATA[su：切换为管理员 
exit：退回到用户

useradd name：增加用户 
userdel name：删除用户（默认不移出家目录) 
 
userdel -r：删除用户连同家目录一起删除 
 
find：查找一个文件 
按文件名查找:find+路径+-name+文件名 
 
 
grep:过滤（对字符串进行过滤的不是对文件） 
grep +“过滤条件”+文件名 
 
用管道链接过滤 
 
...]]></description><category></category></item><item><title><![CDATA[InputStreamReader，OutputStreamWriter]]></title><link>https://blog.youkuaiyun.com/Mars1997/article/details/81186266</link><guid>https://blog.youkuaiyun.com/Mars1997/article/details/81186266</guid><author>Mars1997</author><pubDate>Wed, 25 Jul 2018 09:24:14 +0800</pubDate><description><![CDATA[InputStreamReader



InputStreamReader作用就是将“字节输入流”转换成“字符输入流”

输入流译码器

   private final StreamDecoder sd;

构造函数

//一个参数，根据in创建InputStreamReader，使用默认的编码
    public InputStreamReader(InputStream in) {
  ...]]></description><category></category></item><item><title><![CDATA[PriorityQueue]]></title><link>https://blog.youkuaiyun.com/Mars1997/article/details/81167578</link><guid>https://blog.youkuaiyun.com/Mars1997/article/details/81167578</guid><author>Mars1997</author><pubDate>Mon, 23 Jul 2018 16:10:33 +0800</pubDate><description><![CDATA[PriorityQueue

优先队列的作用是保证每次取出的元素都是队列中权值最小的。通过二叉小顶堆实现，可以用一棵完全二叉树表示。底层是通过数组实现的。（元素不能为空）。

基本成员变量

//默认容量
   private static final int DEFAULT_INITIAL_CAPACITY = 11;
//数组，用来存储数据
   private transient Objec...]]></description><category></category></item><item><title><![CDATA[HashMap]]></title><link>https://blog.youkuaiyun.com/Mars1997/article/details/81159860</link><guid>https://blog.youkuaiyun.com/Mars1997/article/details/81159860</guid><author>Mars1997</author><pubDate>Mon, 23 Jul 2018 00:24:59 +0800</pubDate><description><![CDATA[HashMap

哈希表（线程不安全，没有锁，会导致并发问题—扩容问题） 
 
数组的时间复杂度O（n） 
 
哈希冲突         哈希函数 
构造函数（可以使元素均匀的分布在卡槽里）： 
1.直接寻址法（f（key）= key） 
2.除留余数法（f（p） = p%n） 
哈希冲突的解决方法 
1.链地址法 
构造函数：f（p） = p%16 
数组+单项链表 
 
2.探测法：pos（n...]]></description><category></category></item><item><title><![CDATA[ArrayList，LinkedList]]></title><link>https://blog.youkuaiyun.com/Mars1997/article/details/81154438</link><guid>https://blog.youkuaiyun.com/Mars1997/article/details/81154438</guid><author>Mars1997</author><pubDate>Sun, 22 Jul 2018 22:14:48 +0800</pubDate><description><![CDATA[ArrayList

ArrayList就是动态数组，用MSDN中的说法，就是Array的复杂版本，它提供了动态的增加和减少元素，实现了Collection和List接口，灵活的设置数组的大小等好处。                                                           ——《百度》

优点： 
1.可以自动改变大小 
2.可以灵活地插入删除元素，设置...]]></description><category></category></item><item><title><![CDATA[Linux进程及一些计算机基础知识]]></title><link>https://blog.youkuaiyun.com/Mars1997/article/details/80951017</link><guid>https://blog.youkuaiyun.com/Mars1997/article/details/80951017</guid><author>Mars1997</author><pubDate>Sat, 07 Jul 2018 15:02:40 +0800</pubDate><description><![CDATA[计算机体系 
操作系统（管理计算机上的软硬件资源，为用户提供一个交互的接口）     计算机网络      :传输层    网络层    应用层     http

速度由慢到快： 
1.硬盘（机械硬盘（较慢），固态硬盘（较快）） 
2.内存（掉电数据丢失）  
3. catch缓存（正常情况下catch命中率可达到百分之九十） 
 4.寄存器 
  5.cpu

程序（可执行）由指令构成 
计算...]]></description><category></category></item><item><title><![CDATA[Linux常用命令]]></title><link>https://blog.youkuaiyun.com/Mars1997/article/details/80847624</link><guid>https://blog.youkuaiyun.com/Mars1997/article/details/80847624</guid><author>Mars1997</author><pubDate>Thu, 28 Jun 2018 18:52:35 +0800</pubDate><description><![CDATA[
cd：切换当前目录 

ls：查看文件与目录 

ls -l：显示文件的详细信息 

ls -a：显示指定目录下所有子目录，包括隐藏文件（隐藏文件以.开头） 

pwd：显示当前工作目录 

who：显示当前登录的所有用户名 

clear：清屏
mkdir：创建目录 

touch：创建文件 

rm：删除文件 

rm -rf：删除目录
rm -f：强制删除
rm -r：向下递归删除
rmd...]]></description><category></category></item></channel></rss>