- 关于String.format
ruan114514
java开发语言
在Java开发中,我们经常需要处理字符串拼接——比如生成日志、格式化用户输出、拼接订单号或二维码ID。你可能遇到过这样的代码:Stringlog="用户"+username+"在"+newSimpleDateFormat("yyyy-MM-ddHH:mm:ss").format(newDate())+"登录,IP地址是"+ip;这种手动拼接的方式不仅代码冗长,还容易出现格式错误(比如日期格式遗漏、
- 美团辟谣「30万本科生送外卖」;微软裁员再引争议,员工未归属股票被全部回收;传OpenAI“开放权重模型”最快下周上线|极客头条
极客日报
microsoft
「极客头条」——技术人员的新闻圈!CSDN的读者朋友们好,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。(投稿或寻求报道:
[email protected])整理|苏宓出品|CSDN(ID:CSDNnews)一分钟速览新闻点!美团辟谣「30万本科生送外卖」传字节跳动旗下沐瞳科技已收购杭州心光流美2025福布斯中国最佳CEO榜单揭晓:马化腾、雷军、王传福排名前三武汉大学集成电路学
- @Transactional事务注解的批量回滚机制
TTc_
java事务
关键机制说明:1.事务注解生效:@Transactional(rollbackFor=Exception.class)@Override@Transactional(rollbackFor=Exception.class)publicBooleansaveUser(UserDTOuserDto){SysUsersysUser=newSysUser();BeanUtils.copyPropertie
- String和StringBuffer和StringBuilder的使用场景
徐德猫
java开发语言
Stringstr='hello'//在jvm中的存放图Stringstr=newString('hello');String:就是因为底层有一个publicfinalcharvalue[]数组来保存数据,但是因为它是final的,所以这个value一旦指向一个地址就不能再改变指向。StringBuffer和StringBuilder:它们的底层并没有用final去修饰数组value所以它们的字符
- == 和 equals 区别及使用方法组件封装方法
hie98894
java开发语言
一、基本使用方法1.1==运算符的使用==运算符用于比较基本数据类型的值或引用数据类型的引用地址。基本数据类型比较:inta=10;intb=10;System.out.println(a==b);//输出true,比较值是否相等引用数据类型比较:Strings1=newString("hello");Strings2=newString("hello");System.out.println(s
- Web端版本更新提示--前端处理
扶我起来还能学_
前端javascriptvue.js前端框架
Web端版本更新提示–前端处理原理:webpack每次打包jshash值不同import{MessageBox}from'element-ui'letlastScripts=[]//最新一次js文件src名constDURATION=5*60*1000//设置5分钟检查更新一次//提取html中的script标签的src属性asyncfunctionextractNewScripts(htmlSt
- StringBuilder练习项目代码及相关知识点
1.动态字符串操作需求:编写一个程序,接收用户输入的多个单词,并将它们组合成一个完整的句子,同时支持以下功能:动态添加单词删除某些单词将句子反转importjava.util.Scanner;publicclassStringBuilderDemo{publicstaticvoidmain(String[]args){StringBuildersb=newStringBuilder();Scann
- leetcode67.二进制求和
ゞ 正在缓冲99%…
算法leetcode位运算
publicclassSolution{publicStringaddBinary(Stringa,Stringb){StringBuilderresult=newStringBuilder();inti=a.length()-1;intj=b.length()-1;intcarry=0;while(i>=0||j>=0||carry!=0){intsum=carry;if(i>=0){sum+=
- Flutter 稳定版支持 Windows,开发者还学的动吗?
以下文章来源于code小生,关注每日干货及时送达整理|郭露责编|张红月出品|CSDN(ID:CSDNnews)Flutter是由谷歌开发的开源移动UI框架,可快速在不同平台上构建高质量原生用户界面。Flutter支持现有的所有代码,在世界各地受到越来越多开发者的追捧。到目前为止,全球已发布了近50万个使用Flutter的应用程序,其中包括来自字节跳动等大型公司的应用程序,以及谷歌三十个团队的应用程
- resttemplate默认超时时间_使用微软数据通信框架WCF:客户端调用服务超时分析
weixin_39665302
服务端设置超时时间
首先给出对调用超时的分析和解决办法,然后在给出完整和应用代码。1客户端调用超时运行客户端,执行调用ServiceProxyproxy=newServiceProxy();strings=proxy.GetData(1);通过配置sendTimeout参数设定超时时间,超时时间默认为1分钟,上述配置中采用了默认超时时间。InnerExceptionMessage请求通道在等待00:00:59.946
- 牛顿迭代法求解平方根
Young_Gy
一个实例迭代简介牛顿迭代法牛顿迭代法简介简单推导泰勒公式推导延伸与应用一个实例//java实现的sqrt类和方法publicclasssqrt{publicstaticdoublesqrt(doublen){if(nerr*t)t=(n/t+t)/2;returnt;}publicstaticvoidmain(String[]args){sqrta=newsqrt();System.out.pri
- 推荐与广告区别
ActionReaction
TheDifferencebetweenaRecommendationandanAdAquickthoughtregardingFacebook’snewSocialAdsplatform.Arecommendationissomethingyougetfromsomeonewhoknowssomethingaboutyou.Theyhaveseenanitemofinterestandthoug
- 【python实用小脚本-128】基于 Python 的 Hacker News 爬虫工具:自动化抓取新闻数据
Kyln.Wu
Pythonpython爬虫自动化
引言在技术社区中,HackerNews是一个汇聚最新技术文章和讨论的热门平台。许多开发者和技术爱好者依赖它来获取行业动态和前沿资讯。然而,手动浏览和筛选这些文章可能耗时且低效。本文将介绍一个基于Python的HackerNews爬虫工具,它能够自动化地从HackerNews网站抓取最新文章,并将结果保存为CSV文件。该工具主要利用了Python的requests、BeautifulSoup和csv
- SpringBoot整合websocket
添加依赖:org.springframework.bootspring-boot-starter-websocket开启WebSocket配置类@ConfigurationpublicclassWebSocketConfig{@BeanpublicServerEndpointExporterserverEndpointExporter(){returnnewServerEndpointExport
- 代码随想录算法训练营第十一天
天天开心(∩_∩)
算法
LeetCode.150逆波兰表达式求值题目链接逆波兰表达式求值题解classSolution{publicintevalRPN(String[]tokens){Stackcstack=newStackset=newHashSetdeque=newLinkedListdeque.getLast()){deque.removeLast();}deque.add(val);}intpeek(){ret
- 【1.5 漫画TiDB分布式数据库】
漫画TiDB分布式数据库小明:“老王,TiDB作为NewSQL数据库,它是如何既保证ACID又实现水平扩展的?”♂️架构师老王:“TiDB是PingCAP开发的分布式关系数据库,它将传统数据库的ACID特性与NoSQL的扩展性完美结合!让我们深入了解这个’钛’级数据库!”目录TiDB核心架构分布式事务原理SQL兼容性集群部署管理性能优化Java集成实战最佳实践️TiDB核心架构三层架构设计┌─
- java鸡兔同笼代码
【聚创网】源码分享
java开发语言
鸡兔同笼问题是一个经典的数学问题,可以用Java编写一个程序来解决。以下是一个简单的Java代码示例:importjava.util.Scanner;publicclassChickenRabbit{publicstaticvoidmain(String[]args){Scannerscanner=newScanner(System.in);System.out.println("请输入头的数量:
- Python爬虫:Scrapy报错:ModuleNotFoundError: No module named ‘scrapy.contrib‘
濯一一
#爬虫bugscrapypython爬虫
项目场景:今天,又开始自学Python爬虫Scrapy框架辽,爬爬爬于是又导包报错辽,,,问题描述:提示:第一行导入scrapy.contrib时报错了。原因分析:百度:找到类似的问题和解决方式:#bug:fromscrapytest.NewsItemsimportNewsItem#改为#debug:fromscrapytest.scrapytest.itemsimportNewsItem思考:重
- select高级——子查询
聪聪的学习笔记
数据可数据库sqlmysql
定义子查询是在一个查询的内部包括另一个查询的查询方式。简单子查询案例select*from`comment`wherecmtDate>(selectcmtDatefrom`comment`wherecmtAuthor='东东1')IN和NOTIN子查询IN案例查询名字中包含’东‘的作者评论过的所有新闻SELECT*FROMnewsWHEREidIN(SELECTnewsIdFROM`comment
- Multicoin Capital:我们为什么投资 io.net
TechubNews
区块链Web3DePIN娱乐人工智能区块链web3媒体
撰文:ShayonSengupta,MulticoinCapital编译:JIN,TechubNews本文来源香港Web3媒体:TechubNews2024年6月6日,币安宣布Launchpool将上线io.net代币IO,用户于香港时间6月7日8时在Launchpool网站将BNB、FDUSD投入到IO挖矿池中获得IO奖励,IO共计可挖矿4天。网站预计将于此公告的大约五小时内,挖矿活动开放前更新
- 东方之珠·数链未来:香港回归28周年RWA革命赋能全球金融
TechubNews
区块链稳定币
2025年7月1日,值此香港回归28周年之际,由Web3Labs、TechubNews与金色财经联合主办的“东方之珠·数链未来:香港Web3新维度赋能全球金融”Space活动于19:30(UTC+8)成功举办。本次活动聚焦香港在Web3与全球金融领域的创新实践,围绕“RWA革命--万亿级资产上链的香港”主题,汇聚行业专家,探讨现实世界资产(RWA)上链的机遇与挑战。主持人TechubNews创始人
- java实现Email发送
Java实现Email发送首先导入依赖‘’org.apache.commonscommons-email1.4密码=授权码QQ邮箱授权码官网教程普通邮件发送:publicstaticvoidmain(String[]args)throwsException{//创建简单文本对象Emailemail=newSimpleEmail();//QQ邮箱的SMTP服务器地址为:smtp.qq.comemai
- javascript的类,ES6模块写法在VSCODE中智能提示
专注VB编程开发20年
javascriptvscode开发语言
onststringlib=newStringLib();,必须NEW对象吗?有没有像VB.ENT一样的静态类或模块?用模块名.函数方式智能提示?在JavaScript中,你可以通过以下几种方式实现类似VB.NET的静态类或模块功能,直接使用模块名。函数的方式调用,并获得VSCode的智能提示:方法一:使用普通对象(最简洁)直接定义一个对象字面量,将所有方法作为其属性。通过JSDoc注释提供类型信
- 详解java的StringBuilder类
lanbing
Java知识必知必会java开发语言
在Java中,StringBuilder是一个非常常用且高效的类,用于操作可变字符串(mutablestring)。与String类不同的是,String是不可变的(immutable),每次对字符串进行拼接、修改等操作时都会创建一个新的对象,而StringBuilder则可以在原有对象上进行修改,从而提高性能。✅什么是newStringBuilder()?StringBuildersb=newS
- react 自定义状态管理库
stoneSkySpace
react.js前端前端框架
核心实现原理:全局状态容器:维护单一状态源订阅机制:组件订阅状态变化状态更新调度:通过Hooks触发组件重渲染基础版实现–核心代码//1.创建全局状态存储constcreateStore=(initialState)=>{letstate=initialStateconstlisteners=newSet()return{getState:()=>state,setState:(newState)
- 设计模式-单例模式
GodKeyNet
设计模式单例模式
1.用到的类一个用于获取单例的类。2.实现代码懒汉式/***懒汉式单例模式*/publicclassSingleLazy{privatestaticSingleLazysingleLazy=newSingleLazy();publicstaticSingleLazygetInstance(){returnsingleLazy;}}饿汉式/***饿汉式单例**/publicclassHungrySi
- realloc() 用法详解
小可爱amour
C/C++算法
原型:externvoid*realloc(void*mem_address,unsignedintnewsize);语法:指针名=(数据类型*)realloc(要改变内存大小的指针名,新的大小)。//新的大小若小于原来的大小,原数据的末尾可能丢失(被其他使用内存的数据覆盖等)头文件:#include有些编译器需要#include,在TC2.0中可以使用alloc.h头文件功能:先判断当前的指针是
- groovy:SimpleDateFormat 打印当前时间
belldeep
GroovyjavajavagroovyDate
today.groovyimportjava.util.Date;importjava.text.SimpleDateFormat;//日期格式化SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");Datedate=newDate();Stringnow=sdf.format(date);printlnnow;python打印
- 关于 java:8. Java 内存模型与 JVM 基础
shenyan~
javajvm开发语言
一、堆Java堆是JVM中所有线程共享的运行时内存区域,用于存放所有对象实例、数组以及类的实例字段值。在Java中:Stringstr=newString("abc");newString("abc")创建的对象就分配在堆中。1.1堆的特点特性说明共享区域所有线程共享堆GC管理垃圾回收器对堆管理最频繁分代模型为提高GC性能,堆被划分为新生代/老年代等区域空间大堆是JVM管理内存中最大的区域慢速堆分
- string s = new string(“java“)这个几个对象?
扣棣编程
#面试复习javaspringboot开发语言
(❁´◡`❁)您的点赞➕评论➕收藏⭐是作者创作的最大动力支持我:点赞+收藏⭐️+留言欢迎留言讨论(源码+调试运行+问题答疑)有兴趣可以联系我文末有往期免费源码,直接领取获取(无删减,无套路)在Java中,代码Strings=newString("java");(注意:正确的类名是String,首字母大写)会创建1个或2个对象,具体取决于字符串常量池(StringPool)的当前状态。以下是详细分析
- 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节点最多