- Java基础学习第十七天(System类、RunTime类 、Date类、Math类、Random类)
_Gerald
SystemRunTimeDateMathRandom
一、系统类System1、主要用于获取系统的属性数据。2、System类常用的方法常用方法解释currentTimeMillis()获取当前系统时间(很重要)arraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength)src:源数组、srcPos:源数组中的起始位置、dest:目标数组、destPos:目标数据中的起始位置、lengt
- Java中二维数组全部赋成同一个值以及打印二维数组的常用方法
L_59
java开发语言
目录将二维数组全部赋成同一个值。1.使用嵌套循环。2.使用Arrays.fill()方法!推荐3.使用System.arraycopy()方法。总结:打印二维数组1.使用嵌套循环2.使用Arrays.deepToString()!推荐将二维数组全部赋成同一个值。1.使用嵌套循环。int[][]arr=newint[3][3];intvalue=5;for(inti=0;iArrays.fill(a
- Java开发入门-数组和方法以及补充
子柒s
java开发语言
标题目录数组数组的定义数组的初始化静态初始化动态初始化数组的访问数组的遍历/迭代数组的复制使用循环手动复制(最基础)使用System.arraycopy()(高效推荐)使用Arrays.copyOf()方法方法的意义方法的定义方法的调用return方法的重载(overloading)补充随机数的生成方式Math.random()方法(最基础)Random类(最常用)Debug调试工具默认值数组数组
- Java基础(四) Object 数组转成 String 数组
JUN_LLLL
Java基础JavaobjectStingArray数组
Java有个问题就是toArray()方法是Object[],所以总结了几种Object数组转成String数组的方法:1、System.arraycopy把一个数组中某一段字节数据放到另一个数组中//src:源数组;srcPos:源数组要复制的起始位置;dest:目的数组;destPos:目的数组放置的起始位置;length:复制的长度.publicstaticvoidarraycopy(Obj
- JAVA基础函数库集合
PHP(Mr. Hamster)
Javajava
|多个参数类型选择[]被包含参数为选填Systemin系统输入out系统输出arraycopy(a,0,b,2,3)数组复制原数组原数组起始下标目标数组目标数组起始下标复制长度currentTimeMillis()获取系统毫秒级时间gc()通知GC垃圾回收机制回收内存执行时间由JVM决定java.net.ServerSocketjava.net.Socketaccept()返回一个socket实例
- JAVA--栈和队列
子夜夏歌
数据结构java
栈-Stack栈是一种先入后出的限定性线性表。数据的插入和删除操作仅在同一端进行,称为栈顶(top),另一端为固定的一端,称为栈底(Bottom)。特征是先入后出。栈有两种基本操作push进栈(栈顶插入)和pop出栈(删除栈顶),基本实现有数组(顺序栈)和链表(链式栈)。顺序栈的实现System.arraycopy(src,srcPos,dest,destPos,length);可实现动态扩容pu
- 2024年最新-Android-面试之Java知识点梳理,新手必看避免踩雷!(含详细解析)
2501_90326065
android面试java
基于数组实现,查找快:o(1),增删慢:o(n)初始容量为10,扩容通过System.arrayCopy方法LinkedList基于双向链表实现,查找慢:o(n),增删快:o(1)封装了队列和栈的调用HashMap、HashTable、HashSetHashMap(允许key/value为null)基于数组和单向链表实现,数组是HashMap的主体;链表是为解决哈希冲突而存在的,存放的是key和v
- 【hot100】189轮转数组
鱼力舟
HOT100算法数据结构
一、思路简单思路,使用将原数组移动到新数组后,然后把新数组移回原数组进阶思路,使用数学特性,将数组整体反转,然后单独反转移动区间和剩余区间二、记忆1.以原数组为基准0移动到新数组和以新数组为基准0从原数组迁移两种思路和写法2.数组复制函数System.arraycopy(num1,0,nums,0,n);3.java中没有翻转数组的api,需要自己写,熟悉相关写法三、代码3.1额外数组public
- 数组拷贝Arraycopy
xing2516
Arraycopyjava
packageqing;//数组拷贝publicclassArraycopy{publicstaticvoidmain(String[]args){//一维数组拷贝Stringa[]={"小米","华为","阿里","腾讯","百度"};String[]aBak=newString[6];//从a数组第0个copy到数组aBak0个开始,长度是a数组长度System.arraycopy(a,0,a
- Java – 数组Copy的几种方式
hooc
javaweb
目前在Java中数据拷贝提供了如下方式:cloneSystem.arraycopyArrays.copyOfArrays.copyOfRange1、clone方法clone方法是从Object类继承过来的,基本数据类型(String,boolean,char,byte,short,float,double,long)都可以直接使用clone方法进行克隆,注意String类型是因为其值不可变所以才可
- Java数组:针对数组(Array)的各种操作
江南又旧雨
Java
创建一维数组int[]number=newint[]{1,2,3,5,8};int[]number={1,2,3,5,8};Java复制数组的四种方法:arraycopy()方法、clone()方法、copyOf()和copyOfRange()方法1.使用copyOf()方法对数组进行复制Arrays类的copyOf()方法的语法格式如下:Arrays.copyOf(dataType[]srcAr
- Java中四种常用的数组复制的方法copyOf(),arraycop(),clone()和copyOfRange()的使用与区别
方九九
java知识点总结java
所谓复制数组,是指将一个数组中的元素在另一个数组中进行复制。本文主要介绍关于Java里面的数组复制(拷贝)的几种方式和用法。在Java中实现数组复制分别有以下4种方法:1.Arrays类的copyOf()方法2.Arrays类的copyOfRange()方法3.System类的arraycopy()方法4.Object类的clone()方法下面来详细介绍这4种方法的使用。使用copyOf()方法和
- LeetCode hot 100 学习记录 day 2
a77895
leetcode学习算法
文章目录Integer方法除自身以外数组的乘积缺失的第一个正数参考链接Integer方法由轮转数组到Interger方法、System方法轮转数组:涉及到的方法:System.arraycopy(newArr,0,nums,0,n)nums.assign(newArr.begin(),newArr.end());方法介绍:publicstaticnativevoidarraycopy(Object
- java实战-list遍历删除元素
qq_27233977
java开发实战经验javalist开发语言
1.简述:在我们的实际开发中,list绝对是用的最多的集合类,然而对于很多人来说,用的最多的出错也是最多的。尤其是list的增删操作。2.错误示例publicclassTest{publicstaticvoidmain(String[]args){Listlist=newArrayListlist=newArrayList0)System.arraycopy(elementData,index+1
- 预定义标准常量( MarketInfo(Symbol(),MODE_…) )
牛在汇上飞
为了简化程序编写,使程序文本编辑使用起来更加简便,在MQL4中预定义了标准常量。标准常量类似于宏代换,并且是int(整数类型)。这些常量按用途进行分组。序列化数组序列化数组标识符用在ArrayCopySeries(),iHighest()和iLowest()函数。可以是以下任意值:(常数值描述)MODE_OPEN0开MODE_LOW1低MODE_HIGH2高MODE_CLOSE3收MODE_VOL
- Java基础——System系统类
风之彼端
Java学习java开发语言
System系统类(在职的人不去看)跟着源码学习,不看api,一般是给学习者看常用方法://学习数组的时候,自己写过数组拷贝的代码,工具类publicstaticnativevoidarraycopy(Objectsrc,intsrcPos(开始的索引),Objectdest,intdestPos(开始拷贝的数组索引位置),intlength(要拷贝多长));//查询当前系统时间System.cu
- byte数组截取
唔66
数据结构
//原始数组byte[]bytes=ImageUtils.toByteArray(fromPaths[0]);//新数组byte[]b1=newbyte[bytes.length-80];//从原始数组80位置开始截取后面所有System.arraycopy(bytes,80,b1,0,bytes.length-80);BufferData2DbufferData2D=newBufferData2
- Java System.arrayCopy 参数意义
邱献旭
下面是System.arrayCopy的源代码声明:publicstaticvoidarraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength)代码解释:Objectsrc:原数组intsrcPos:从原数据的起始位置开始Objectdest:目标数组intdestPos:目标数组的开始起始位置intlength:要copy的数组的长
- System.arraycopy和Arrays.copyOf的区别
殷俊杰
System.arraycopy函数原型publicstaticnativevoidarraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength);src:源数组srcPos:源数组起始位置dest:目标数组destPos:目标数组起始位置length:拷贝几个元素Arrays.copyOfpublicstaticint[]copyOf
- Java知识点总结
Xiao 柠
Java程序设计java开发语言算法
数据类型强转:byteshortintlongfloatdouble;数组定义[]数组名clone-复制数组equals-比较存储地址toStringsort-排序length-长度arraycopy([]a,s,[]b,ss,n)-数组复制运算符及语句instanceof双目运算符–左对象右类判断是否是该类创建的对象-是->true否->false面对对象特性:封装、继承、多态;类=成员变量+方
- 算法训练营Day60(单调栈)
不吃青椒!
算法算法java数据结构
84.柱状图的最大矩形84.柱状图中最大的矩形-力扣(LeetCode)注意首尾加0的细节就可classSolution{publicintlargestRectangleArea(int[]heights){Dequestack=newLinkedList<>();int[]newHeight=newint[heights.length+2];System.arraycopy(heights,0
- java数组工具类_java数组与java.util.Arrays工具类
Peter 王广忠
java数组工具类
概念Java中数组属于引用类型。数组使用场合较多,对于数组的操作具有一定重复性,例如:数组拷贝,转换字符串,转换成数组,排序等等。既然重复的操作与需求多,那么对于数组操作的支持就成了JDK中的一大需求。java.util.Arrays中提供了很多对数组操作的支持。System.arraycopy:数组元素拷贝publicstaticnativevoidarraycopy(Objectsrc,int
- 【JavaSE篇】——数组练习
chlorine5
javajava开发语言算法leetcode
目录数组转字符串数组拷贝拷贝的实质copyOf方法(new)copyOf扩容arraycopy方法(局部的拷贝)(系统类)copyOfRange方法(局部拷贝)原数组.clone()Arrays.fillArrays.equalsort❗总结Java中提供了java.util.Arrays包,其中包含了一些操作数组的常用方法..Array;操作数组相关的工具类.数组转字符串数组——>字符串{1,2
- leetcode189 轮转数组
南方乌鸦
算法leetcode数据结构
文章目录1.前言2.解法2.1中间数组2.2冒泡轮转2.3分块反转3.原题1.前言写博客监督自己,至少保证每天一条,解法不一定全,也不一定是最好的,仅供参考。2.解法2.1中间数组最简单的想法就是新建一个数组,然后复制System.arraycopy(int[]arr,intstar,int[]arr2,intstart2,length);//被复制数组开始下标目标数组开始放入位置复制个数//写的
- android 中byte[]的copy
朝阳眯眼
android
在做项目时要用到byte[]的copy,通过for循环是可以实现的,但是再想能不能用别的方法实现,最好调用一个方法,免去for循环。终于让我找到一个方法byte[]parent=newbyte[1024*8];byte[]children=newbyte[123];System.arraycopy(parent,5,children,0,123);四个参数分别表示:第一个:原数组第二个:原数组的开
- 【Java集合 6】arraycopy方法的作用
哪 吒
Java基础教程系列javarust
Java学习路线:搬砖工逆袭Java架构师简介:Java领域优质创作者、CSDN哪吒公众号作者✌、Java架构师奋斗者扫描主页左侧二维码,加入群聊,一起学习、一起进步欢迎点赞收藏⭐留言目录一、前言二、源码拜读1、源码
- java 数组合并的10种方法
一花一world
后端javapython开发语言
在Java中,合并(或连接)数组是常见的任务。以下是10种不同的方法来实现数组的合并:首先是10种方法的对比1.使用System.arraycopy()方法使用场景:当你需要快速、高效地合并两个数组时。优点:是Java标准库提供的方法,不需要额外的依赖。通常比手动遍历和赋值更快。缺点:只能用于基本类型和对象数组的合并。2.使用Java8StreamAPI使用场景:当你喜欢使用函数式编程风格时。优点
- iOS copy和mutableCopy区别
yidezhang
今天遇到一个问题,由此引起copy和mutalbeCopy的区别,不深究不觉得自己不知道,随便一问就给问住了。正文开始。NSArray和NSMutableArray为例copy是浅拷贝,不拷贝对象本身1.以下代码会输出什么结果NSMutableArray*array=@[@"s",@"3"];ida=[arraycopy];idb=[arraymutableCopy];NSLog(@"%@,%@"
- ArrayList的源码分析(一)【转载】
Bitter255
ArrayList简介ArrayList核心源码ArrayList源码分析System.arraycopy()和Arrays.copyOf()方法两者联系与区别ArrayList核心扩容技术内部类ArrayList经典DemoArrayList简介ArrayList的底层是数组队列,相当于动态数组。与Java中的数组相比,它的容量能动态增长。在添加大量元素前,应用程序可以使用ensureCapac
- [Java] 如何将输入流转换成文件
杨某不才
Java
使用场景:之前用HttpClient做了一个文件下载模块,但是请求来的数据是流形式,因此需要将流还原成文件,于是用到以下方法;原理:本方法原理是先用固定字节数读取输入流,再将其写入文件输出流,先读后写完成流到文件的转换,顺便研究了下arraycopy()的用法;代码:输入流转化成文件importjava.io.File;importjava.io.FileOutputStream;importja
- C/C++Win32编程基础详解视频下载
择善Zach
编程C++Win32
课题视频:C/C++Win32编程基础详解
视频知识:win32窗口的创建
windows事件机制
主讲:择善Uncle老师
学习交流群:386620625
验证码:625
--
- Guava Cache使用笔记
bylijinnan
javaguavacache
1.Guava Cache的get/getIfPresent方法当参数为null时会抛空指针异常
我刚开始使用时还以为Guava Cache跟HashMap一样,get(null)返回null。
实际上Guava整体设计思想就是拒绝null的,很多地方都会执行com.google.common.base.Preconditions.checkNotNull的检查。
2.Guava
- 解决ora-01652无法通过128(在temp表空间中)
0624chenhong
oracle
解决ora-01652无法通过128(在temp表空间中)扩展temp段的过程
一个sql语句后,大约花了10分钟,好不容易有一个结果,但是报了一个ora-01652错误,查阅了oracle的错误代码说明:意思是指temp表空间无法自动扩展temp段。这种问题一般有两种原因:一是临时表空间空间太小,二是不能自动扩展。
分析过程:
既然是temp表空间有问题,那当
- Struct在jsp标签
不懂事的小屁孩
struct
非UI标签介绍:
控制类标签:
1:程序流程控制标签 if elseif else
<s:if test="isUsed">
<span class="label label-success">True</span>
</
- 按对象属性排序
换个号韩国红果果
JavaScript对象排序
利用JavaScript进行对象排序,根据用户的年龄排序展示
<script>
var bob={
name;bob,
age:30
}
var peter={
name;peter,
age:30
}
var amy={
name;amy,
age:24
}
var mike={
name;mike,
age:29
}
var john={
- 大数据分析让个性化的客户体验不再遥远
蓝儿唯美
数据分析
顾客通过多种渠道制造大量数据,企业则热衷于利用这些信息来实现更为个性化的体验。
分析公司Gartner表示,高级分析会成为客户服务的关键,但是大数据分析的采用目前仅局限于不到一成的企业。 挑战在于企业还在努力适应结构化数据,疲于根据自身的客户关系管理(CRM)系统部署有效的分析框架,以及集成不同的内外部信息源。
然而,面对顾客通过数字技术参与而产生的快速变化的信息,企业需要及时作出反应。要想实
- java笔记4
a-john
java
操作符
1,使用java操作符
操作符接受一个或多个参数,并生成一个新值。参数的形式与普通的方法调用不用,但是效果是相同的。加号和一元的正号(+)、减号和一元的负号(-)、乘号(*)、除号(/)以及赋值号(=)的用法与其他编程语言类似。
操作符作用于操作数,生成一个新值。另外,有些操作符可能会改变操作数自身的
- 从裸机编程到嵌入式Linux编程思想的转变------分而治之:驱动和应用程序
aijuans
嵌入式学习
笔者学习嵌入式Linux也有一段时间了,很奇怪的是很多书讲驱动编程方面的知识,也有很多书将ARM9方面的知识,但是从以前51形式的(对寄存器直接操作,初始化芯片的功能模块)编程方法,和思维模式,变换为基于Linux操作系统编程,讲这个思想转变的书几乎没有,让初学者走了很多弯路,撞了很多难墙。
笔者因此写上自己的学习心得,希望能给和我一样转变
- 在springmvc中解决FastJson循环引用的问题
asialee
循环引用fastjson
我们先来看一个例子:
package com.elong.bms;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;
import co
- ArrayAdapter和SimpleAdapter技术总结
百合不是茶
androidSimpleAdapterArrayAdapter高级组件基础
ArrayAdapter比较简单,但它只能用于显示文字。而SimpleAdapter则有很强的扩展性,可以自定义出各种效果
ArrayAdapter;的数据可以是数组或者是队列
// 获得下拉框对象
AutoCompleteTextView textview = (AutoCompleteTextView) this
- 九封信
bijian1013
人生励志
有时候,莫名的心情不好,不想和任何人说话,只想一个人静静的发呆。有时候,想一个人躲起来脆弱,不愿别人看到自己的伤口。有时候,走过熟悉的街角,看到熟悉的背影,突然想起一个人的脸。有时候,发现自己一夜之间就长大了。 2014,写给人
- Linux下安装MySQL Web 管理工具phpMyAdmin
sunjing
PHPInstallphpMyAdmin
PHP http://php.net/
phpMyAdmin http://www.phpmyadmin.net
Error compiling PHP on CentOS x64
一、安装Apache
请参阅http://billben.iteye.com/admin/blogs/1985244
二、安装依赖包
sudo yum install gd
- 分布式系统理论
bit1129
分布式
FLP
One famous theory in distributed computing, known as FLP after the authors Fischer, Lynch, and Patterson, proved that in a distributed system with asynchronous communication and process crashes,
- ssh2整合(spring+struts2+hibernate)-附源码
白糖_
eclipsespringHibernatemysql项目管理
最近抽空又整理了一套ssh2框架,主要使用的技术如下:
spring做容器,管理了三层(dao,service,actioin)的对象
struts2实现与页面交互(MVC),自己做了一个异常拦截器,能拦截Action层抛出的异常
hibernate与数据库交互
BoneCp数据库连接池,据说比其它数据库连接池快20倍,仅仅是据说
MySql数据库
项目用eclipse
- treetable bug记录
braveCS
table
// 插入子节点删除再插入时不能正常显示。修改:
//不知改后有没有错,先做个备忘
Tree.prototype.removeNode = function(node) {
// Recursively remove all descendants of +node+
this.unloadBranch(node);
// Remove
- 编程之美-电话号码对应英语单词
bylijinnan
java算法编程之美
import java.util.Arrays;
public class NumberToWord {
/**
* 编程之美 电话号码对应英语单词
* 题目:
* 手机上的拨号盘,每个数字都对应一些字母,比如2对应ABC,3对应DEF.........,8对应TUV,9对应WXYZ,
* 要求对一段数字,输出其代表的所有可能的字母组合
- jquery ajax读书笔记
chengxuyuancsdn
jQuery ajax
1、jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()
- JWFD工作流拓扑结构解析伪码描述算法
comsci
数据结构算法工作活动J#
对工作流拓扑结构解析感兴趣的朋友可以下载附件,或者下载JWFD的全部代码进行分析
/* 流程图拓扑结构解析伪码描述算法
public java.util.ArrayList DFS(String graphid, String stepid, int j)
- oracle I/O 从属进程
daizj
oracle
I/O 从属进程
I/O从属进程用于为不支持异步I/O的系统或设备模拟异步I/O.例如,磁带设备(相当慢)就不支持异步I/O.通过使用I/O 从属进程,可以让磁带机模仿通常只为磁盘驱动器提供的功能。就好像支持真正的异步I/O 一样,写设备的进程(调用者)会收集大量数据,并交由写入器写出。数据成功地写出时,写入器(此时写入器是I/O 从属进程,而不是操作系统)会通知原来的调用者,调用者则会
- 高级排序:希尔排序
dieslrae
希尔排序
public void shellSort(int[] array){
int limit = 1;
int temp;
int index;
while(limit <= array.length/3){
limit = limit * 3 + 1;
- 初二下学期难记忆单词
dcj3sjt126com
englishword
kitchen 厨房
cupboard 厨柜
salt 盐
sugar 糖
oil 油
fork 叉;餐叉
spoon 匙;调羹
chopsticks 筷子
cabbage 卷心菜;洋白菜
soup 汤
Italian 意大利的
Indian 印度的
workplace 工作场所
even 甚至;更
Italy 意大利
laugh 笑
m
- Go语言使用MySQL数据库进行增删改查
dcj3sjt126com
mysql
目前Internet上流行的网站构架方式是LAMP,其中的M即MySQL, 作为数据库,MySQL以免费、开源、使用方便为优势成为了很多Web开发的后端数据库存储引擎。MySQL驱动Go中支持MySQL的驱动目前比较多,有如下几种,有些是支持database/sql标准,而有些是采用了自己的实现接口,常用的有如下几种:
http://code.google.c...o-mysql-dri
- git命令
shuizhaosi888
git
---------------设置全局用户名:
git config --global user.name "HanShuliang" //设置用户名
git config --global user.email "
[email protected]" //设置邮箱
---------------查看环境配置
git config --li
- qemu-kvm 网络 nat模式 (四)
haoningabc
kvmqemu
qemu-ifup-NAT
#!/bin/bash
BRIDGE=virbr0
NETWORK=192.168.122.0
GATEWAY=192.168.122.1
NETMASK=255.255.255.0
DHCPRANGE=192.168.122.2,192.168.122.254
TFTPROOT=
BOOTP=
function check_bridge()
- 不要让未来的你,讨厌现在的自己
jingjing0907
生活 奋斗 工作 梦想
故事one
23岁,他大学毕业,放弃了父母安排的稳定工作,独闯京城,在家小公司混个小职位,工作还算顺手,月薪三千,混了混,混走了一年的光阴。 24岁,有了女朋友,从二环12人的集体宿舍搬到香山民居,一间平房,二人世界,爱爱爱。偶然约三朋四友,打扑克搓麻将,日子快乐似神仙; 25岁,出了几次差,调了两次岗,薪水涨了不过百,生猛狂飙的物价让现实血淋淋,无力为心爱银儿购件大牌
- 枚举类型详解
一路欢笑一路走
enum枚举详解enumsetenumMap
枚举类型详解
一.Enum详解
1.1枚举类型的介绍
JDK1.5加入了一个全新的类型的”类”—枚举类型,为此JDK1.5引入了一个新的关键字enum,我们可以这样定义一个枚举类型。
Demo:一个最简单的枚举类
public enum ColorType {
RED
- 第11章 动画效果(上)
onestopweb
动画
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- Eclipse中jsp、js文件编辑时,卡死现象解决汇总
ljf_home
eclipsejsp卡死js卡死
使用Eclipse编辑jsp、js文件时,经常出现卡死现象,在网上百度了N次,经过N次优化调整后,卡死现象逐步好转,具体那个方法起到作用,不太好讲。将所有用过的方法罗列如下:
1、取消验证
windows–>perferences–>validation
把 除了manual 下面的全部点掉,build下只留 classpath dependency Valida
- MySQL编程中的6个重要的实用技巧
tomcat_oracle
mysql
每一行命令都是用分号(;)作为结束
对于MySQL,第一件你必须牢记的是它的每一行命令都是用分号(;)作为结束的,但当一行MySQL被插入在PHP代码中时,最好把后面的分号省略掉,例如:
mysql_query("INSERT INTO tablename(first_name,last_name)VALUES('$first_name',$last_name')");
- zoj 3820 Building Fire Stations(二分+bfs)
阿尔萨斯
Build
题目链接:zoj 3820 Building Fire Stations
题目大意:给定一棵树,选取两个建立加油站,问说所有点距离加油站距离的最大值的最小值是多少,并且任意输出一种建立加油站的方式。
解题思路:二分距离判断,判断函数的复杂度是o(n),这样的复杂度应该是o(nlogn),即使常数系数偏大,但是居然跑了4.5s,也是醉了。 判断函数里面做了3次bfs,但是每次bfs节点最多