SeismicXML范例解析

 SeismicXML例子程序演示如何使用NSXMLParser分析XML数据,主要分析从USGS的RSS feed。USGS提供世界各地的最近地震。它显示每个地震的位置,日期,震级。同时用颜色图形显示地震的严重性。此XML在后台分析且用分析的对象更新地震table view。
此代码中包含了一些比较好的思想,如多线程分析xml数据,异步下载,NSNotificationCente(在两个类中传递数据),UIActionSheet类实现,和其它一些技术细节。

官方例子相关:
SeismicXML地址:http://developer.apple.com/iphone/library/samplecode/SeismicXML/SeismicXML.zip

 

一、程序的运行效果


二、程序的思路
多线程的好处即提高程序执行效率,防止界面阻塞。
1、进入程序后,建立给定网址(RSS feed)的连接,程序会自动下载对应的RSS feed数据,如果网络连接无误,数据自动全部下载,这是XCode提供的内部回调函数。
2、增加消息中心,以便地震RSS feed解析成功或失败时通知
3、建立一个线程,把下载好的数据传递给新建线程类,把此线程添加到线程队列,通过注册的消息中心来通知被处理的数据,这点与LazyTableImages有区别,LazyTableImage是利用XCode的delegate等待线程结束后返回被处理后的数据。
3、在创建的线程中用NSXMLParser根据程序要求分析下载的数据,并添加到数组中。全部解析之后,通知AppDelegate
4、从线程类接到解析成功通知后,根据通知参数NSNotification指针,调用table view视图rootViewController,插入解析好的数组

下面记录一些具体的代码实现
1、网络连接并下载数据

声明
@interface SeismicXMLAppDelegate : NSObject  
{
    NSURLConnection *earthquakeFeedConnection; 
	NSMutableData *earthquakeData;	
}
实现
@interface SeismicXMLAppDelegate ()

@property (nonatomic, retain) NSURLConnection *earthquakeFeedConnection;
@property (nonatomic, retain) NSMutableData *earthquakeData;    
@end

#pragma mark -
#pragma mark SeismicXMLAppDelegate

@implementation SeismicXMLAppDelegate

@synthesize earthquakeFeedConnection;
@synthesize earthquakeData;

- (void)dealloc 
{
    [earthquakeFeedConnection cancel];
    [earthquakeFeedConnection release];
    
    [earthquakeData release];
    [super dealloc];
}
- (void)applicationDidFinishLaunching:(UIApplication *)application 
{
    static NSString *feedURLString = @"http://earthquake.usgs.gov/eqcenter/catalogs/7day-M2.5.xml";
    NSURLRequest *earthquakeURLRequest =
    [NSURLRequest requestWithURL:[NSURL URLWithString:feedURLString]];
    self.earthquakeFeedConnection =
    [[[NSURLConnection alloc] initWithRequest:earthquakeURLRequest delegate:self] autorelease];
    NSAssert(self.earthquakeFeedConnection != nil, @"Failure to create URL connection.");
}

#pragma mark -
#pragma mark NSURLConnection delegate methods
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response 
{
    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;
    if ((([httpResponse statusCode]/100) == 2) && [[response MIMEType] isEqual:@"application/atom+xml"])
	{
        self.earthquakeData = [NSMutableData data];
    } 
	else 
	{
        NSDictionary *userInfo = [NSDictionary dictionaryWithObject:
                                  NSLocalizedString(@"HTTP Error",
                                                    @"Error message displayed when receving a connection error.")
                                                             forKey:NSLocalizedDescriptionKey];
        NSError *error = [NSError errorWithDomain:@"HTTP" code:[httpResponse statusCode] userInfo:userInfo];
        [self handleError:error];
    }
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data 
{
    [earthquakeData appendData:data];
}

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error 
{
    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;   
    if ([error code] == kCFURLErrorNotConnectedToInternet)
	{
        NSDictionary *userInfo =
        [NSDictionary dictionaryWithObject:
         NSLocalizedString(@"No Connection Error",
                           @"Error message displayed when not connected to the Internet.")
                                    forKey:NSLocalizedDescriptionKey];
        NSError *noConnectionError = [NSError errorWithDomain:NSCocoaErrorDomain
                                                         code:kCFURLErrorNotConnectedToInternet
                                                     userInfo:userInfo];
        [self handleError:noConnectionError];
    }
	else
	{
        // otherwise handle the error generically
        [self handleError:error];
    }
    self.earthquakeFeedConnection = nil;
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection 
{
    self.earthquakeFeedConnection = nil;
    ParseOperation *parseOperation = [[ParseOperation alloc] initWithData:self.earthquakeData];
    [self.parseQueue addOperation:parseOperation];
    [parseOperation release];   // once added to the NSOperationQueue it's retained, we don't need it anymore
    
    self.earthquakeData = nil;
}

2、创建线程队列并把新建线程增加到队列中 

头文件
@interface SeismicXMLAppDelegate : NSObject 
{  
@private
    NSOperationQueue *parseQueue; 
}
实现
#import "ParseOperation.h"

#pragma mark SeismicXMLAppDelegate () 
@interface SeismicXMLAppDelegate ()
@property (nonatomic, retain) NSOperationQueue *parseQueue;  
@end

#pragma mark -
#pragma mark SeismicXMLAppDelegate
@implementation SeismicXMLAppDelegate
@synthesize parseQueue;

- (void)dealloc 
{
    [parseQueue release];
    [super dealloc];
}

- (void)applicationDidFinishLaunching:(UIApplication *)application 
{
    parseQueue = [NSOperationQueue new]; 
}

#pragma mark -
#pragma mark NSURLConnection delegate methods
- (void)connectionDidFinishLoading:(NSURLConnection *)connection 
{
    ParseOperation *parseOperation = [[ParseOperation alloc] initWithData:self.earthquakeData];
    [self.parseQueue addOperation:parseOperation];
    [parseOperation release];
}
@end

3、增加通知中心

AppDelegate中实现
- (void)dealloc 
{
    [[NSNotificationCenter defaultCenter] removeObserver:self name:kAddEarthquakesNotif object:nil];
    [[NSNotificationCenter defaultCenter] removeObserver:self name:kEarthquakesErrorNotif object:nil];
        [super dealloc];
}
- (void)applicationDidFinishLaunching:(UIApplication *)application 
{
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(addEarthquakes:)
                                                 name:kAddEarthquakesNotif
                                               object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(earthquakesError:)
                                                 name:kEarthquakesErrorNotif
                                               object:nil];
}
- (void)addEarthquakes:(NSNotification *)notif
{
    assert([NSThread isMainThread]);
    
    [self addEarthquakesToList:[[notif userInfo] valueForKey:kEarthquakeResultsKey]];
}
- (void)earthquakesError:(NSNotification *)notif
{
    assert([NSThread isMainThread]);
    
    [self handleError:[[notif userInfo] valueForKey:kEarthquakesMsgErrorKey]];
}
- (void)addEarthquakesToList:(NSArray *)earthquakes
{
    [self.rootViewController insertEarthquakes:earthquakes];
}
线程头文件ParseOperation.h
extern NSString *kAddEarthquakesNotif;
extern NSString *kEarthquakeResultsKey;

extern NSString *kEarthquakesErrorNotif;
extern NSString *kEarthquakesMsgErrorKey;
线程实现文件ParseOperation.m
NSString *kAddEarthquakesNotif = @"AddEarthquakesNotif";
NSString *kEarthquakeResultsKey = @"EarthquakeResultsKey";
NSString *kEarthquakesErrorNotif = @"EarthquakeErrorNotif";
NSString *kEarthquakesMsgErrorKey = @"EarthquakesMsgErrorKey";
- (void)addEarthquakesToList:(NSArray *)earthquakes 
{
    assert([NSThread isMainThread]);
    
    [[NSNotificationCenter defaultCenter] postNotificationName:kAddEarthquakesNotif
                                                        object:self
                                                      userInfo:[NSDictionary dictionaryWithObject:earthquakes
                                                                                           forKey:kEarthquakeResultsKey]]; 
}
- (void)handleEarthquakesError:(NSError *)parseError {
    [[NSNotificationCenter defaultCenter] postNotificationName:kEarthquakesErrorNotif
                                                    object:self
                                                  userInfo:[NSDictionary dictionaryWithObject:parseError
                                                                                       forKey:kEarthquakesMsgErrorKey]];
}


4、格式化日期

头文件:ParseOperation.h
@private
NSDateFormatter *dateFormatter;
实现文件ParseOperation.m
- (id)initWithData:(NSData *)parseData
{
    if (self = [super init]) 
	{    
        dateFormatter = [[NSDateFormatter alloc] init];
        [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
        [dateFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"] autorelease]];
		//Aug 5,2011 11:39:30 PM
        [dateFormatter setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'"];
}
}
- (void)dealloc 
{
    [dateFormatter release];
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName
                                      namespaceURI:(NSString *)namespaceURI
                                     qualifiedName:(NSString *)qName
{   
  self.currentEarthquakeObject.date =
            [dateFormatter dateFromString:self.currentParsedCharacterData];
}
头文件:RootViewController.h
@interface RootViewController : UITableViewController  {
    NSDateFormatter *dateFormatter;
}
@property (nonatomic, retain, readonly) NSDateFormatter *dateFormatter;
实现文件RootViewController.m
- (void)dealloc {
     [dateFormatter release];
    [super dealloc];
}
- (NSDateFormatter *)dateFormatter {
    if (dateFormatter == nil) {
        dateFormatter = [[NSDateFormatter alloc] init];
        [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
        [dateFormatter setDateStyle:NSDateFormatterMediumStyle];
        [dateFormatter setTimeStyle:NSDateFormatterMediumStyle];
    }
    return dateFormatter;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
     dateLabel.text = [NSString stringWithFormat:@"%@", [self.dateFormatter stringFromDate:earthquake.date]];
 	return cell;
}

5、分解字符串

// M 3.6, Virgin Islands region<title/>
NSScanner *scanner = [NSScanner scannerWithString:self.currentParsedCharacterData];
if ([scanner scanString:@"M " intoString:NULL]) 
{
    CGFloat magnitude;
    if ([scanner scanFloat:&magnitude])
    {
	self.currentEarthquakeObject.magnitude = magnitude;
	if ([scanner scanString:@", " intoString:NULL]) 
	{
	    NSString *location = nil;	   
	    if ([scanner scanUpToCharactersFromSet:[NSCharacterSet illegalCharacterSet] intoString:&location]) 				
	    {
		self.currentEarthquakeObject.location = location;
	    }
	}
    }
}
// 18.6477 -66.7452
NSScanner *scanner = [NSScanner scannerWithString:self.currentParsedCharacterData];
double latitude, longitude;
if ([scanner scanDouble:&latitude])
{
    if ([scanner scanDouble:&longitude])
    {
	self.currentEarthquakeObject.latitude = latitude;
	self.currentEarthquakeObject.longitude = longitude;
    }
}
</code></pre> 
  <p><br> 6、KVO模型<br></p> 
  <pre><code class="language-cpp">- (void)viewDidLoad {
    [super viewDidLoad];
    
    self.earthquakeList = [NSMutableArray array];
    // KVO: listen for changes to our earthquake data source for table view updates
    [self addObserver:self forKeyPath:@"earthquakeList" options:0 context:NULL];
}
- (void)viewDidUnload {
    [super viewDidUnload];
        self.earthquakeList = nil;
    [self removeObserver:self forKeyPath:@"earthquakeList"];
}
#pragma mark -
#pragma mark KVO support

- (void)insertEarthquakes:(NSArray *)earthquakes
{
    // this will allow us as an observer to notified (see observeValueForKeyPath)
    // so we can update our UITableView
    //
    [self willChangeValueForKey:@"earthquakeList"];
    [self.earthquakeList addObjectsFromArray:earthquakes];
    [self didChangeValueForKey:@"earthquakeList"];
}

// listen for changes to the earthquake list coming from our app delegate.
- (void)observeValueForKeyPath:(NSString *)keyPath
                      ofObject:(id)object
                        change:(NSDictionary *)change
                       context:(void *)context
{
    [self.tableView reloadData];
}
</code></pre> 
  <p><br> 7、自定义cell,使用view的Tags而不是子类化cell</p> 
  <p></p> 
  <pre><code class="language-cpp">- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{
    // Each subview in the cell will be identified by a unique tag.
    static NSUInteger const kLocationLabelTag = 2;
    static NSUInteger const kDateLabelTag = 3;
    static NSUInteger const kMagnitudeLabelTag = 4;
    static NSUInteger const kMagnitudeImageTag = 5;
    
    // Declare references to the subviews which will display the earthquake data.
    UILabel *locationLabel = nil;
    UILabel *dateLabel = nil;
    UILabel *magnitudeLabel = nil;
    UIImageView *magnitudeImage = nil;
    
	static NSString *kEarthquakeCellID = @"EarthquakeCellID";    
  	UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kEarthquakeCellID];
	if (cell == nil) 
	{
        // No reusable cell was available, so we create a new cell and configure its subviews.
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
                                       reuseIdentifier:kEarthquakeCellID] autorelease];
        
        locationLabel = [[[UILabel alloc] initWithFrame:CGRectMake(10, 3, 190, 20)] autorelease];
        locationLabel.tag = kLocationLabelTag;
        locationLabel.font = [UIFont boldSystemFontOfSize:14];
        [cell.contentView addSubview:locationLabel];
        
        dateLabel = [[[UILabel alloc] initWithFrame:CGRectMake(10, 28, 170, 14)] autorelease];
        dateLabel.tag = kDateLabelTag;
        dateLabel.font = [UIFont systemFontOfSize:10];
        [cell.contentView addSubview:dateLabel];

        magnitudeLabel = [[[UILabel alloc] initWithFrame:CGRectMake(277, 9, 170, 29)] autorelease];
        magnitudeLabel.tag = kMagnitudeLabelTag;
        magnitudeLabel.font = [UIFont boldSystemFontOfSize:24];
        magnitudeLabel.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin;
        [cell.contentView addSubview:magnitudeLabel];
        
        magnitudeImage = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"5.0.png"]] autorelease];
        CGRect imageFrame = magnitudeImage.frame;
        imageFrame.origin = CGPointMake(180, 2);
        magnitudeImage.frame = imageFrame;
        magnitudeImage.tag = kMagnitudeImageTag;
        magnitudeImage.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin;
        [cell.contentView addSubview:magnitudeImage];
    } 
	else 
	{
        // A reusable cell was available, so we just need to get a reference to the subviews
        // using their tags. 
        locationLabel = (UILabel *)[cell.contentView viewWithTag:kLocationLabelTag];
        dateLabel = (UILabel *)[cell.contentView viewWithTag:kDateLabelTag];
        magnitudeLabel = (UILabel *)[cell.contentView viewWithTag:kMagnitudeLabelTag];
        magnitudeImage = (UIImageView *)[cell.contentView viewWithTag:kMagnitudeImageTag];
    }
    
    // Get the specific earthquake for this row.
	Earthquake *earthquake = [earthquakeList objectAtIndex:indexPath.row];
    
    // Set the relevant data for each subview in the cell.
    locationLabel.text = earthquake.location;
    dateLabel.text = [NSString stringWithFormat:@"%@", [self.dateFormatter stringFromDate:earthquake.date]];
    magnitudeLabel.text = [NSString stringWithFormat:@"%.1f", earthquake.magnitude];
    magnitudeImage.image = [self imageForMagnitude:earthquake.magnitude];

	return cell;
}
</code></pre> 
  <p><br> 8、UIActionSheet的使用<br><br></p> 
  <pre><code class="language-cpp">@interface RootViewController : UITableViewController <UIActionSheetDelegate> {  
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{	
    UIActionSheet *sheet =
        [[UIActionSheet alloc] initWithTitle:
            NSLocalizedString(@"External App Sheet Title",
                              @"Title for sheet displayed with options for displaying Earthquake data in other applications")
                               delegate:self
                      cancelButtonTitle:NSLocalizedString(@"Cancel", @"Cancel")
                 destructiveButtonTitle:nil
                      otherButtonTitles:NSLocalizedString(@"Show USGS Site in Safari", @"Show USGS Site in Safari"),
                                        NSLocalizedString(@"Show Location in Maps", @"Show Location in Maps"),
                                        nil];
    [sheet showInView:self.view];
    [sheet release];
}

// Called when the user selects an option in the sheet. The sheet will automatically be dismissed.
- (void)actionSheet:(UIActionSheet *)actionSheet willDismissWithButtonIndex:(NSInteger)buttonIndex 
{
    NSIndexPath *selectedIndexPath = [self.tableView indexPathForSelectedRow];
    Earthquake *earthquake = (Earthquake *)[earthquakeList objectAtIndex:selectedIndexPath.row];
    switch (buttonIndex) 
	{
        case 0: 
		{
            NSURL *webLink = [earthquake USGSWebLink];
            [[UIApplication sharedApplication] openURL:webLink];
        }
			break;
        case 1: 
		{
            NSString *mapsQuery =
                [NSString stringWithFormat:@"http://maps.google.com/maps?z=6&t=h&ll=%f,%f",
                                            earthquake.latitude, earthquake.longitude];
            [[UIApplication sharedApplication] openURL:[NSURL URLWithString:mapsQuery]];
        } break;
        default:
            break;
    }
    [self.tableView deselectRowAtIndexPath:selectedIndexPath animated:YES];
}
</code></pre> 
  <p><br> 三、结束语<br> 官方例子中一般有比较好的程序思路和结构设计,代码健壮性也比较好。<br></p> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1296301186550407168"></div>
                    <script type="text/javascript" src="/views/front/js/chanyan.js"></script>
                    <!-- 文章页-底部 动态广告位 -->
                    <div class="youdao-fixed-ad" id="detail_ad_bottom"></div>
                </div>
                <div class="col-md-3">
                    <div class="row" id="ad">
                        <!-- 文章页-右侧1 动态广告位 -->
                        <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_1"> </div>
                        </div>
                        <!-- 文章页-右侧2 动态广告位 -->
                        <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_2"></div>
                        </div>
                        <!-- 文章页-右侧3 动态广告位 -->
                        <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_3"></div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div class="container">
        <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(SeismicXML范例解析)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1773605468367814656.htm"
                           title="数据结构奇妙旅程之深入解析快速排序" target="_blank">数据结构奇妙旅程之深入解析快速排序</a>
                        <span class="text-muted">山间漫步人生路</span>
<a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95/1.htm">排序算法</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a>
                        <div>快速排序(QuickSort)是一种高效的排序算法,它使用了分治法的策略来将一个数组排序。其基本思想是选择一个基准元素,通过一趟排序将待排序的数据分割成独立的两部分,其中一部分的所有数据都比基准元素小,另一部分的所有数据都比基准元素大,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。工作原理选择基准:从待排序的序列中选一个元素作为基准(pivo</div>
                    </li>
                    <li><a href="/article/1773582305621770240.htm"
                           title="华为OD机试 - 单向链表中间节点(Java & JS & Python & C & C++)" target="_blank">华为OD机试 - 单向链表中间节点(Java & JS & Python & C & C++)</a>
                        <span class="text-muted">华为OD题库</span>
<a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BAod/1.htm">华为od</a><a class="tag" taget="_blank" href="/search/%E9%93%BE%E8%A1%A8/1.htm">链表</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>须知哈喽,本题库完全免费,收费是为了防止被爬,大家订阅专栏后可以私信联系退款。感谢支持文章目录须知题目描述输出描述解析代码题目描述给定一个单链表L,请编写程序输出L中间结点保存的数据。如果有两个中间结点,则输出第二个中间结点保存的数据。例如:给定L为1→7→5,则输出应该为7;给定L为1→2→3→4,则输出应该为3;输入描述每个输入包含1个测试用例。每个测试用例:第一行给出链表首结点的地址、结点总</div>
                    </li>
                    <li><a href="/article/1773500483722346496.htm"
                           title="标定系列——基于OpenCV实现普通相机、鱼眼相机不同标定板下的标定(五)" target="_blank">标定系列——基于OpenCV实现普通相机、鱼眼相机不同标定板下的标定(五)</a>
                        <span class="text-muted">JANGHIGH</span>
<a class="tag" taget="_blank" href="/search/%E6%A0%87%E5%AE%9A/1.htm">标定</a><a class="tag" taget="_blank" href="/search/opencv/1.htm">opencv</a>
                        <div>标定系列——基于OpenCV实现相机标定(五)说明代码解析VID5.xmlin_VID5.xmlcamera_calibration.cpp说明该程序可以实现多种标定板的相机标定工作代码解析VID5.xmlimages/CameraCalibration/VID5/xx1.jpgimages/CameraCalibration/VID5/xx2.jpgimages/CameraCalibratio</div>
                    </li>
                    <li><a href="/article/1773495447948689408.htm"
                           title="docker怎么端口映射" target="_blank">docker怎么端口映射</a>
                        <span class="text-muted">Lance_mu</span>
<a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>1、默认固定的端口#Web服务器:WebApache或Nginx通常使用80端口HTTP:80HTTPS:443#数据库服务器MySQL:3306PostgreSQL:5432MongoDB:27017Redis:6379#邮件服务器SMTP:25POP3:110IMAP:143#其他服务SSH:22FTP:21DNS(域名解析):53代理服务器Squid:3128版本控制系统Git:9418(S</div>
                    </li>
                    <li><a href="/article/1773482860498452480.htm"
                           title="Golang标准库fmt深入解析与应用技巧" target="_blank">Golang标准库fmt深入解析与应用技巧</a>
                        <span class="text-muted">walkskyer</span>
<a class="tag" taget="_blank" href="/search/golang%E6%A0%87%E5%87%86%E5%BA%93/1.htm">golang标准库</a><a class="tag" taget="_blank" href="/search/golang/1.htm">golang</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a>
                        <div>Golang标准库fmt深入解析与应用技巧前言fmt包的基本使用打印与格式化输出函数Print系列函数格式化字符串格式化输入函数小结字符串格式化基本类型的格式化输出自定义类型的格式化输出控制格式化输出的宽度和精度小结错误处理与fmt使用fmt.Errorf生成错误信息fmt包与错误处理的最佳实践小结日志记录与fmtfmt包在日志记录中的应用结合log包使用fmt进行高级日志处理小结fmt与IOfm</div>
                    </li>
                    <li><a href="/article/1773470489847595008.htm"
                           title="剧本杀【幕后玩家】复盘解析+凶手是谁+剧透结局+测评+怎么玩?" target="_blank">剧本杀【幕后玩家】复盘解析+凶手是谁+剧透结局+测评+怎么玩?</a>
                        <span class="text-muted">VX搜_彤彤速递</span>

                        <div>每天持续更新复盘有15000+:线下剧本杀·百变大侦探·我是谜·谁是凶手·玩吧·剧本杀线上·戏精大侦探·魔王杀·儿童剧本杀...所有谜题在等着你去揭开。为了你获得更好的游戏体验,本文仅显示《幕后玩家》剧本杀部分真相复盘,获取完整真相复盘只需两步①【微信关注公众号:云云复盘】②回复【幕后玩家】即可查看获取哦贾友仁利用自己保险公司的职务,在杨光审车时,隐瞒了车子存在刹车不灵的问题。想让杜若出车祸死亡,</div>
                    </li>
                    <li><a href="/article/1773453849684672512.htm"
                           title="【奶茶剧本杀】玩吧《梨园醉》剧本杀凶手是谁剧透+真相答案复盘解析攻略" target="_blank">【奶茶剧本杀】玩吧《梨园醉》剧本杀凶手是谁剧透+真相答案复盘解析攻略</a>
                        <span class="text-muted">VX搜_奶茶剧本杀</span>

                        <div>本文为玩吧剧本杀《梨园醉》剧本杀测评+部分真相复盘,获取完整真相复盘只需两步:①、关注微信公众号【奶茶剧本杀】→②、回复玩吧剧本杀《梨园醉》即可获取查看玩吧剧本杀《梨园醉》剧本杀真相答案复盘+凶手剧透:以下是玩家评测+部分关键证据,凶手,时间线,复盘解析,推理逻辑--------------------------------------------------------------------</div>
                    </li>
                    <li><a href="/article/1773450885851054080.htm"
                           title="python转码" target="_blank">python转码</a>
                        <span class="text-muted">Desamond</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>转码在许多场景中都有应用,以下是一些常见的场景:网页开发:当用户在网页上输入文本时,可能需要将特殊字符(如空格、引号、特殊符号等)进行转码,以防止这些字符对URL或HTML代码产生干扰。文件名处理:在处理文件名时,可能需要将特殊字符进行转码,以避免文件名被错误地解析或显示。数据传输:在数据传输过程中,为了确保数据的完整性和正确性,可能需要将数据中的特殊字符进行转码。数据存储:在数据库或数据存储中,</div>
                    </li>
                    <li><a href="/article/1773432631829004288.htm"
                           title="风险管理和采购管理核心考点梳理" target="_blank">风险管理和采购管理核心考点梳理</a>
                        <span class="text-muted">WorkLee</span>
<a class="tag" taget="_blank" href="/search/PMP/1.htm">PMP</a><a class="tag" taget="_blank" href="/search/PMP/1.htm">PMP</a><a class="tag" taget="_blank" href="/search/%E9%A3%8E%E9%99%A9%E7%AE%A1%E7%90%86/1.htm">风险管理</a><a class="tag" taget="_blank" href="/search/%E9%87%87%E8%B4%AD%E7%AE%A1%E7%90%86/1.htm">采购管理</a>
                        <div>个人总结,仅供参考,欢迎加好友一起讨论PMP-风险管理和采购管理核心考点梳理风险管理风险是一个中性词,包括机会和威胁。风险管理的子过程非常多,但是相对来说子过程之间的逻辑非常清晰,整个风险管理的过程都是在维护一个非常重要的工件-风险登记册。风险管理是项目管理全生命周期都要开展的。1)规划风险管理风险管理计划包含哪些内容?解析:风险管理计划是描述如何安排与实施风险管理活动。(风险管理计划中无风险)包</div>
                    </li>
                    <li><a href="/article/1773432630256140288.htm"
                           title="沟通管理和相关方管理核心考点梳理" target="_blank">沟通管理和相关方管理核心考点梳理</a>
                        <span class="text-muted">WorkLee</span>
<a class="tag" taget="_blank" href="/search/PMP/1.htm">PMP</a><a class="tag" taget="_blank" href="/search/PMP/1.htm">PMP</a><a class="tag" taget="_blank" href="/search/%E6%B2%9F%E9%80%9A%E7%AE%A1%E7%90%86/1.htm">沟通管理</a><a class="tag" taget="_blank" href="/search/%E7%9B%B8%E5%85%B3%E6%96%B9/1.htm">相关方</a><a class="tag" taget="_blank" href="/search/%E5%B9%B2%E7%B3%BB%E4%BA%BA/1.htm">干系人</a>
                        <div>个人总结,仅供参考,欢迎加好友一起讨论PMP-沟通管理和相关方管理核心考点梳理沟通管理和相关方(干系人)管理这两章放在一起进行梳理,这两章很多的考点很容易混淆,经常会纠结于一些题目,究竟选择沟通管理还是干系人管理的知识点。沟通管理1)规划沟通管理沟通在PMP中是指信息流的传递,PM是根据谁的需求来确定这种信息流的传递方式、频率,内容、格式呢?解析:规划沟通管理是基于每个相关方或相关方群体的信息需求</div>
                    </li>
                    <li><a href="/article/1773421960794013696.htm"
                           title="2022-07-09" target="_blank">2022-07-09</a>
                        <span class="text-muted">双髻山府正堂</span>

                        <div>【解析】法律解释是指一定的人或组织对法律规定意义的说明与阐述。法律解释由于解释主体和解释效力的不同可以分为正式解释与非正式解释。所谓正式解释,通常也叫法定解释,是指由特定的国家机关、官员或其他有解释权的人对法律作出的具有法律上约束力的解释。由于王某老伴与子女对该条的解释不具有法律上的约束力,故为非正式解释,A项说法错误。主观目的解释是指根据参与立法的人的意志或立法资料揭示某个法律规定的含义,或者说</div>
                    </li>
                    <li><a href="/article/1773389809448976384.htm"
                           title="项目管理工具最佳实践" target="_blank">项目管理工具最佳实践</a>
                        <span class="text-muted">水岩</span>

                        <div>各个公司的最佳实践去哪儿jira自定义使用1.jira编号对应git分支命名,后台增加监控程序,新增一个分支,自动解析分支中的jira编号,自动落地到数据库,完成映射2.各个发布系统间信息同步,消息中心(IC)+数据中心(DC),广播消息加一站式查询,持续集成,推进代码检查质量,分钟级反馈质量检查反思:1.项目管好:针对一线研发人员,简单易用,而不是满足管理层的“统计度量”(...)简化分类字段,</div>
                    </li>
                    <li><a href="/article/1773347793847517184.htm"
                           title="UNDERSTANDING HTML WITH LARGE LANGUAGE MODELS" target="_blank">UNDERSTANDING HTML WITH LARGE LANGUAGE MODELS</a>
                        <span class="text-muted">liferecords</span>
<a class="tag" taget="_blank" href="/search/LLM/1.htm">LLM</a><a class="tag" taget="_blank" href="/search/%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B/1.htm">语言模型</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86/1.htm">自然语言处理</a>
                        <div>UNDERSTANDINGHTMLWITHLARGELANGUAGEMODELS相关链接:arXiv关键字:大型语言模型、HTML理解、Web自动化、自然语言处理、机器学习摘要大型语言模型(LLMs)在各种自然语言任务上表现出色。然而,它们在HTML理解方面的能力——即解析网页的原始HTML,对于自动化基于Web的任务、爬取和浏览器辅助检索等应用——尚未被充分探索。我们为HTML理解模型(经过微调</div>
                    </li>
                    <li><a href="/article/1773302480382263296.htm"
                           title="计算机常用端口号" target="_blank">计算机常用端口号</a>
                        <span class="text-muted">王依硕</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/ssh/1.htm">ssh</a>
                        <div>ftp:(20端口)用于ftp服务,用于数据传输。ftp:(21端口)用于文件上传和下载。ssh:(22端口)用于安全Shell访问和文件传输。telnet:(23端口)用于远程命令行计算机管理。smtp:(25端口)用于发送电子邮件。dns:(53端口)用于域名解析。dhcp:(67和68端口)用于动态分配IP地址和配置网络参数。tftp:(69端口)使用udp连接。finger:(79端口)是</div>
                    </li>
                    <li><a href="/article/1773256158274977792.htm"
                           title="javascript 日期转换为时间戳,时间戳转换为日期的函数" target="_blank">javascript 日期转换为时间戳,时间戳转换为日期的函数</a>
                        <span class="text-muted">cdcdhj</span>
<a class="tag" taget="_blank" href="/search/javascript%E5%AD%A6%E4%B9%A0%E6%97%A5%E8%AE%B0/1.htm">javascript学习日记</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/ecmascript/1.htm">ecmascript</a>
                        <div>日期转化为时间戳,主要用valueOf()来进行转化为毫秒时间戳,getTime()IOS系统无法解析转换,所以都有valueOf()letgetTimestampOrDate=function(timestamp){lettimeStamp='';constregex=/^\d{4}(-|\/)\d{2}(-|\/)\d{2}$/;constregex2=/^\d{4}(-|\/)\d{2}(-</div>
                    </li>
                    <li><a href="/article/1772791384470781952.htm"
                           title="【HBZ分享】ES的聚合函数汇总" target="_blank">【HBZ分享】ES的聚合函数汇总</a>
                        <span class="text-muted">hbz-</span>
<a class="tag" taget="_blank" href="/search/elasticsearch/1.htm">elasticsearch</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                        <div>聚合分类指标聚合:对数据集求最大、最小、和、平均值等指标的聚合,称为指标聚合metric格式:GET/index/_search{"size":0,"aggs":{"aggregation_name":{"aggregation_type":{"aggregation_field":"field_name"//可选参数}}//可以添加更多的聚合}}#解析-index:要执行聚合查询的索引名称。-s</div>
                    </li>
                    <li><a href="/article/1772758530500132864.htm"
                           title="每日OJ题_子数组子串dp⑥_力扣978. 最长湍流子数组" target="_blank">每日OJ题_子数组子串dp⑥_力扣978. 最长湍流子数组</a>
                        <span class="text-muted">GR鲸鱼</span>
<a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92/1.htm">动态规划</a><a class="tag" taget="_blank" href="/search/leetcode/1.htm">leetcode</a>
                        <div>目录力扣978.最长湍流子数组解析代码力扣978.最长湍流子数组978.最长湍流子数组难度中等给定一个整数数组arr,返回arr的最大湍流子数组的长度。如果比较符号在子数组中的每个相邻元素对之间翻转,则该子数组是湍流子数组。更正式地来说,当arr的子数组A[i],A[i+1],...,A[j]满足仅满足下列条件时,我们称其为湍流子数组:若iA[k+1],且当k为偶数时,A[k]A[k+1],且当k</div>
                    </li>
                    <li><a href="/article/1772757774929821696.htm"
                           title="C语言-数据在内存存储" target="_blank">C语言-数据在内存存储</a>
                        <span class="text-muted">白榆maple</span>
<a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>目录一、整数在内存中存储1.整数在内存中的存储2.大小端字节序2.为什么有大小端3.大小端判断二、浮点数在内存中的存储1.V=(−1)^s∗M*2^EIEEE754规定:2.浮点数存的过程3.浮点数取的过程E不全为0或不全为1E全为0E全为1题⽬解析一、整数在内存中存储1.整数在内存中的存储在内存中存储的数据是二进制,整数的2进制表示方法有三种,即原码、反码和补码有符号的整数,三种表示方法均有符号</div>
                    </li>
                    <li><a href="/article/1772674446482538496.htm"
                           title="计算机网络复试总结(五)" target="_blank">计算机网络复试总结(五)</a>
                        <span class="text-muted">interee</span>
<a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/1.htm">计算机网络</a>
                        <div>可能会问:基础知识问题:请简述TCP/IP协议栈的层次结构及其功能。TCP/IP协议栈的层次结构及其功能可以简要概述如下:层次结构:TCP/IP协议栈通常被划分为四个主要层次,从底层到高层分别是网络接口层(也称为链路层或数据链路层)、网络层(也称为网际网层)、传输层和应用层。这四个层次协同工作,实现数据的封装、传输和解析,从而完成网络通信任务。功能概述:网络接口层:这是TCP/IP协议栈的最底层,</div>
                    </li>
                    <li><a href="/article/1772640457365454848.htm"
                           title="MongoDB聚合运算符:$indexOfArray" target="_blank">MongoDB聚合运算符:$indexOfArray</a>
                        <span class="text-muted">原子星</span>
<a class="tag" taget="_blank" href="/search/mongodb/1.htm">mongodb</a><a class="tag" taget="_blank" href="/search/mongodb/1.htm">mongodb</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a>
                        <div>文章目录语法使用举例$indexOfArray聚合运算符返回指定值在数组中第一次出现的索引位置,数组的索引从0开始。语法{$indexOfArray:[,,,]}$indexOfArray参数说明:,字符串,可以是任何能够解析为数组的表达式,如果表达式解析为null或引用的字段不存在,$indexOfArray返回null。如果表达式不能解析为数组或null且引用的字段都存在,$indexOfAr</div>
                    </li>
                    <li><a href="/article/1772632522652450816.htm"
                           title="list分组,多线程处理数据入库" target="_blank">list分组,多线程处理数据入库</a>
                        <span class="text-muted">墨玉加菲</span>
<a class="tag" taget="_blank" href="/search/java%E5%90%8E%E7%AB%AF/1.htm">java后端</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a>
                        <div>需求:解析上传的文件,将文件里的数据放入到list后,验证数据,符合条件的数据入库,分组多线程处理数据,有异常回滚事务(这里使用的是手动事务)先贴代码,这是业务代码packagecom.sh.service.test.impl;importcom.baomidou.mybatisplus.extension.service.impl.ServiceImpl;importcom.sh.constan</div>
                    </li>
                    <li><a href="/article/1772631515398733824.htm"
                           title="解析XML文件的几种方式?" target="_blank">解析XML文件的几种方式?</a>
                        <span class="text-muted">人生在勤,不索何获</span>
<a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a>
                        <div>在Java中解析XML文件可以通过多种方式完成,其中最常用的有DOM(DocumentObjectModel)、SAX(SimpleAPIforXML)和StAX(StreamingAPIforXML)。每种方式有其特点和适用场景。1.DOM解析DOM解析是一种将整个XML文档加载到内存中,构造成一个树形结构,然后你可以很方便地访问任何数据节点的方法。这种方法适用于需要频繁读写操作的场景。impo</div>
                    </li>
                    <li><a href="/article/1772618299398488064.htm"
                           title="Vue:为什么要使用v-cloak" target="_blank">Vue:为什么要使用v-cloak</a>
                        <span class="text-muted">刻刻帝的海角</span>
<a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a>
                        <div>Vue.js是一种流行的JavaScript框架,它使我们能够构建交互性强大的用户界面。在Vue.js中,v-cloak是一个指令,用于解决在页面加载时出现的闪烁问题。本文将介绍如何使用v-cloak及代码来优化Vue.js应用程序的渲染效果。引言当我们使用Vue.js构建应用程序时,有时会遇到一个问题:在页面加载时,由于Vue.js需要一定的时间来解析和渲染模板,会导致页面上显示出未经处理的Mu</div>
                    </li>
                    <li><a href="/article/1772585194260332544.htm"
                           title="基于FPGA的UDP协议栈设计第二章_IP层设计" target="_blank">基于FPGA的UDP协议栈设计第二章_IP层设计</a>
                        <span class="text-muted">顺子学不会FPGA</span>
<a class="tag" taget="_blank" href="/search/UDP%E5%8D%8F%E8%AE%AE%E6%A0%88%E8%AE%BE%E8%AE%A1/1.htm">UDP协议栈设计</a><a class="tag" taget="_blank" href="/search/udp/1.htm">udp</a><a class="tag" taget="_blank" href="/search/tcp%2Fip/1.htm">tcp/ip</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/fpga%E5%BC%80%E5%8F%91/1.htm">fpga开发</a>
                        <div>文章目录前言:IP层报文解析一、IP_TX模块一、IP_RX模块总结前言:IP层报文解析参考:https://blog.csdn.net/Mary19920410/article/details/59035804版本:IP协议的版本,4bit,IPV4-0100,IPV6-0110首部长度:IP报头的长度。固定部分的长度(20字节,5个32bit,一般就填5)和可变部分的长度之和。4bit。最大为</div>
                    </li>
                    <li><a href="/article/1772500355632922624.htm"
                           title="vue时间组件:dayjs与moment" target="_blank">vue时间组件:dayjs与moment</a>
                        <span class="text-muted">煸橙干儿~~</span>
<a class="tag" taget="_blank" href="/search/VUE%E5%AE%9E%E6%88%98/1.htm">VUE实战</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a>
                        <div>一、dayjs使用Day.js是一个极简的JavaScript库,可以为现代浏览器解析、验证、操作和显示日期和时间。具体使用可参考:dayjs官网1、本年start=dayjs().startOf('year').format('YYYY-MM-DD')end=dayjs().endOf('year').format('YYYY-MM-DD')console.log(start,end)//['2</div>
                    </li>
                    <li><a href="/article/1772471530085744640.htm"
                           title="Analysis of Negative Sampling Methods for Knowledge Graph Embedding" target="_blank">Analysis of Negative Sampling Methods for Knowledge Graph Embedding</a>
                        <span class="text-muted">小蜗子</span>
<a class="tag" taget="_blank" href="/search/%E7%9F%A5%E8%AF%86%E5%9B%BE%E8%B0%B1%E8%B4%9F%E9%87%87%E6%A0%B7/1.htm">知识图谱负采样</a><a class="tag" taget="_blank" href="/search/%E7%9F%A5%E8%AF%86%E5%9B%BE%E8%B0%B1/1.htm">知识图谱</a><a class="tag" taget="_blank" href="/search/embedding/1.htm">embedding</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a>
                        <div>摘要负采样是一种用于加速知识图嵌入学习和最大化嵌入模型在链接预测和实体解析等支持任务中的有效性的方法。负采样对于提高准确性、减少偏差、提高效率和改善代表性至关重要。本文仔细研究了在基准数据集Fb15k上,张量分解和平移嵌入模型的两种基本负采样技术增加每正负采样数量的后果。对于均匀抽样和伯努利抽样,值得注意的是,基于每阳性负的数量增加而显示性能变化的模式。我们的目标是确定不同的负采样参数对张量分解模</div>
                    </li>
                    <li><a href="/article/1772127523396714496.htm"
                           title="比较好的知识点" target="_blank">比较好的知识点</a>
                        <span class="text-muted">hc.Geng</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>2023年Java超全面试题及答案解析---https://blog.csdn.net/qq_42301302/article/details/1287852747分钟带你细致解析4个Java算法必刷题---https://blog.csdn.net/hcxy2022/article/details/12796379750道JAVA基础算法编程题【内含分析、程序答案】---https://blog</div>
                    </li>
                    <li><a href="/article/1772040543803604992.htm"
                           title="adb logcat 命令使用" target="_blank">adb logcat 命令使用</a>
                        <span class="text-muted">sun007700</span>
<a class="tag" taget="_blank" href="/search/adb/1.htm">adb</a>
                        <div>adblogcat命令-CSDN博客c++fork,execl参数logcat|grep-CSDN博客一.命令格式adblogcat[选项][过滤项],其中选项和过滤项在中括号[]中,说明这是可选的;选项解析:1."-s"选项:只显示指定标签的日志;------>adblogcat-sSWVDEC显示SWVDEC标签的日志2."-v"选项:设置日志的输出格式;----->adblogcat-vth</div>
                    </li>
                    <li><a href="/article/1772015996245180416.htm"
                           title="【前端】CommonJS和ES Module" target="_blank">【前端】CommonJS和ES Module</a>
                        <span class="text-muted">Lucky小维</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a>
                        <div>区别语法差异:CommonJS:使用require()导入模块,使用module.exports或exports导出模块。ESModule:使用import导入模块,使用export导出模块。编译时vs运行时:CommonJS是在运行时加载模块,模块代码是动态执行的。ESModule是在编译时静态解析模块依赖关系,以便更好地进行优化和静态分析。异步加载:CommonJS不支持异步加载模块,只能同步</div>
                    </li>
                    <li><a href="/article/1771947519643811840.htm"
                           title="Rust字符串深入理解" target="_blank">Rust字符串深入理解</a>
                        <span class="text-muted">Hello.Reader</span>
<a class="tag" taget="_blank" href="/search/rust/1.htm">rust</a><a class="tag" taget="_blank" href="/search/rust/1.htm">rust</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a>
                        <div>一、概述Rust是一种系统级语言,进行操作系统等底层应用开发,同时又具合理的抽象处理能力。在进行Rust编程时,字符串处理是程序员经常碰到的工作。本文深入解析Rust语言中字符串的使用,包括staticstring,String与&str的区别,转换等等。二、Rust的字符串类型Rust主要提供了两种类型的字符串。一种是固定的Unicode字符串片段,称为’StringLiteral’或’str’</div>
                    </li>
                                <li><a href="/article/28.htm"
                                       title="如何用ruby来写hadoop的mapreduce并生成jar包" target="_blank">如何用ruby来写hadoop的mapreduce并生成jar包</a>
                                    <span class="text-muted">wudixiaotie</span>
<a class="tag" taget="_blank" href="/search/mapreduce/1.htm">mapreduce</a>
                                    <div>ruby来写hadoop的mapreduce,我用的方法是rubydoop。怎么配置环境呢: 
1.安装rvm: 
    不说了 网上有 
2.安装ruby: 
    由于我以前是做ruby的,所以习惯性的先安装了ruby,起码调试起来比jruby快多了。 
3.安装jruby: 
    rvm install jruby然后等待安</div>
                                </li>
                                <li><a href="/article/155.htm"
                                       title="java编程思想 -- 访问控制权限" target="_blank">java编程思想 -- 访问控制权限</a>
                                    <span class="text-muted">百合不是茶</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E8%AE%BF%E9%97%AE%E6%8E%A7%E5%88%B6%E6%9D%83%E9%99%90/1.htm">访问控制权限</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E4%BE%8B%E6%A8%A1%E5%BC%8F/1.htm">单例模式</a>
                                    <div>访问权限是java中一个比较中要的知识点,它规定者什么方法可以访问,什么不可以访问 
  
一:包访问权限; 
  
自定义包: 
package com.wj.control;
//包
public class Demo {
  //定义一个无参的方法
	public void DemoPackage(){
		System.out.println("调用</div>
                                </li>
                                <li><a href="/article/282.htm"
                                       title="[生物与医学]请审慎食用小龙虾" target="_blank">[生物与医学]请审慎食用小龙虾</a>
                                    <span class="text-muted">comsci</span>
<a class="tag" taget="_blank" href="/search/%E7%94%9F%E7%89%A9/1.htm">生物</a>
                                    <div> 
     现在的餐馆里面出售的小龙虾,有一些是在野外捕捉的,这些小龙虾身体里面可能带有某些病毒和细菌,人食用以后可能会导致一些疾病,严重的甚至会死亡..... 
 
     所以,参加聚餐的时候,最好不要点小龙虾...就吃养殖的猪肉,牛肉,羊肉和鱼,等动物蛋白质 
    </div>
                                </li>
                                <li><a href="/article/409.htm"
                                       title="org.apache.jasper.JasperException: Unable to compile class for JSP:" target="_blank">org.apache.jasper.JasperException: Unable to compile class for JSP:</a>
                                    <span class="text-muted">商人shang</span>
<a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a><a class="tag" taget="_blank" href="/search/2.2/1.htm">2.2</a><a class="tag" taget="_blank" href="/search/jdk1.8/1.htm">jdk1.8</a>
                                    <div>环境: jdk1.8    maven  tomcat7-maven-plugin  2.0 
原因: tomcat7-maven-plugin  2.0 不知吃 jdk 1.8,换成 tomcat7-maven-plugin  2.2就行,即 
  
  
<plugin>
				</div>
                                </li>
                                <li><a href="/article/536.htm"
                                       title="你的垃圾你处理掉了吗?GC" target="_blank">你的垃圾你处理掉了吗?GC</a>
                                    <span class="text-muted">oloz</span>
<a class="tag" taget="_blank" href="/search/GC/1.htm">GC</a>
                                    <div>前序:本人菜鸟,此文研究学习来自网络,各位牛牛多指教  
 
 
 
1.垃圾收集算法的核心思想 
  Java语言建立了垃圾收集机制,用以跟踪正在使用的对象和发现并回收不再使用(引用)的对象。该机制可以有效防范动态内存分配中可能发生的两个危险:因内存垃圾过多而引发的内存耗尽,以及不恰当的内存释放所造成的内存非法引用。 
  垃圾收集算法的核心思想是:对虚拟机可用内存空间,即堆空间中的对象进行识别</div>
                                </li>
                                <li><a href="/article/663.htm"
                                       title="shiro 和 SESSSION" target="_blank">shiro 和 SESSSION</a>
                                    <span class="text-muted">杨白白</span>
<a class="tag" taget="_blank" href="/search/shiro/1.htm">shiro</a>
                                    <div>shiro 在web项目里默认使用的是web容器提供的session,也就是说shiro使用的session是web容器产生的,并不是自己产生的,在用于非web环境时可用其他来源代替。在web工程启动的时候它就和容器绑定在了一起,这是通过web.xml里面的shiroFilter实现的。通过session.getSession()方法会在浏览器cokkice产生JESSIONID,当关闭浏览器,此</div>
                                </li>
                                <li><a href="/article/790.htm"
                                       title="移动互联网终端 淘宝客如何实现盈利" target="_blank">移动互联网终端 淘宝客如何实现盈利</a>
                                    <span class="text-muted">小桔子</span>
<a class="tag" taget="_blank" href="/search/%E7%A7%BB%E5%8B%95%E5%AE%A2%E6%88%B6%E7%AB%AF/1.htm">移動客戶端</a><a class="tag" taget="_blank" href="/search/%E6%B7%98%E5%AE%A2/1.htm">淘客</a><a class="tag" taget="_blank" href="/search/%E6%B7%98%E5%AF%B6App/1.htm">淘寶App</a>
                                    <div>       2012年淘宝联盟平台为站长和淘宝客带来的分成收入突破30亿元,同比增长100%。而来自移动端的分成达1亿元,其中美丽说、蘑菇街、果库、口袋购物等App运营商分成近5000万元。 可以看出,虽然目前阶段PC端对于淘客而言仍旧是盈利的大头,但移动端已经呈现出爆发之势。而且这个势头将随着智能终端(手机,平板)的加速普及而更加迅猛</div>
                                </li>
                                <li><a href="/article/917.htm"
                                       title="wordpress小工具制作" target="_blank">wordpress小工具制作</a>
                                    <span class="text-muted">aichenglong</span>
<a class="tag" taget="_blank" href="/search/wordpress/1.htm">wordpress</a><a class="tag" taget="_blank" href="/search/%E5%B0%8F%E5%B7%A5%E5%85%B7/1.htm">小工具</a>
                                    <div>wordpress 使用侧边栏的小工具,很方便调整页面结构 
小工具的制作过程 
1 在自己的主题文件中新建一个文件夹(如widget),在文件夹中创建一个php(AWP_posts-category.php) 
小工具是一个类,想侧边栏一样,还得使用代码注册,他才可以再后台使用,基本的代码一层不变 
<?php 
 class AWP_Post_Category extends WP_Wi</div>
                                </li>
                                <li><a href="/article/1044.htm"
                                       title="JS微信分享" target="_blank">JS微信分享</a>
                                    <span class="text-muted">AILIKES</span>
<a class="tag" taget="_blank" href="/search/js/1.htm">js</a>
                                    <div>// 所有功能必须包含在 WeixinApi.ready 中进行 
   WeixinApi.ready(function(Api) { 
       // 微信分享的数据 
           var wxData = { 
      &nb</div>
                                </li>
                                <li><a href="/article/1171.htm"
                                       title="封装探讨" target="_blank">封装探讨</a>
                                    <span class="text-muted">百合不是茶</span>
<a class="tag" taget="_blank" href="/search/JAVA%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1+%E5%B0%81%E8%A3%85/1.htm">JAVA面向对象 封装</a>
                                    <div>//封装   属性 方法 将某些东西包装在一起,通过创建对象或使用静态的方法来调用,称为封装;封装其实就是有选择性地公开或隐藏某些信息,它解决了数据的安全性问题,增加代码的可读性和可维护性 
  
在 Aname类中申明三个属性,将其封装在一个类中:通过对象来调用 
  
例如   1: 
	//属性 将其设为私有
	姓名 name 可以公开
</div>
                                </li>
                                <li><a href="/article/1298.htm"
                                       title="jquery radio/checkbox change事件不能触发的问题" target="_blank">jquery radio/checkbox change事件不能触发的问题</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a>
                                    <div>我想让radio来控制当前我选择的是机动车还是特种车,如下所示:  
<html> 
<head> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"><</div>
                                </li>
                                <li><a href="/article/1425.htm"
                                       title="AngularJS中安全性措施" target="_blank">AngularJS中安全性措施</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/AngularJS/1.htm">AngularJS</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8%E6%80%A7/1.htm">安全性</a><a class="tag" taget="_blank" href="/search/XSRF/1.htm">XSRF</a><a class="tag" taget="_blank" href="/search/JSON%E6%BC%8F%E6%B4%9E/1.htm">JSON漏洞</a>
                                    <div>        在使用web应用中,安全性是应该首要考虑的一个问题。AngularJS提供了一些辅助机制,用来防护来自两个常见攻击方向的网络攻击。 
一.JSON漏洞 
        当使用一个GET请求获取JSON数组信息的时候(尤其是当这一信息非常敏感,</div>
                                </li>
                                <li><a href="/article/1552.htm"
                                       title="[Maven学习笔记九]Maven发布web项目" target="_blank">[Maven学习笔记九]Maven发布web项目</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a>
                                    <div>基于Maven的web项目的标准项目结构 
user-project 
    user-core 
    user-service 
    user-web 
       src 
     </div>
                                </li>
                                <li><a href="/article/1679.htm"
                                       title="【Hive七】Hive用户自定义聚合函数(UDAF)" target="_blank">【Hive七】Hive用户自定义聚合函数(UDAF)</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/hive/1.htm">hive</a>
                                    <div>用户自定义聚合函数,用户提供的多个入参通过聚合计算(求和、求最大值、求最小值)得到一个聚合计算结果的函数。 
问题:UDF也可以提供输入多个参数然后输出一个结果的运算,比如加法运算add(3,5),add这个UDF需要实现UDF的evaluate方法,那么UDF和UDAF的实质分别究竟是什么? 
  
Double evaluate(Double a, Double b) 
 </div>
                                </li>
                                <li><a href="/article/1806.htm"
                                       title="通过 nginx-lua 给 Nginx 增加 OAuth 支持" target="_blank">通过 nginx-lua 给 Nginx 增加 OAuth 支持</a>
                                    <span class="text-muted">ronin47</span>

                                    <div>前言:我们使用Nginx的Lua中间件建立了OAuth2认证和授权层。如果你也有此打算,阅读下面的文档,实现自动化并获得收益。SeatGeek 在过去几年中取得了发展,我们已经积累了不少针对各种任务的不同管理接口。我们通常为新的展示需求创建新模块,比如我们自己的博客、图表等。我们还定期开发内部工具来处理诸如部署、可视化操作及事件处理等事务。在处理这些事务中,我们使用了几个不同的接口来认证: 
&n</div>
                                </li>
                                <li><a href="/article/1933.htm"
                                       title="利用tomcat-redis-session-manager做session同步时自定义类对象属性保存不上的解决方法" target="_blank">利用tomcat-redis-session-manager做session同步时自定义类对象属性保存不上的解决方法</a>
                                    <span class="text-muted">bsr1983</span>
<a class="tag" taget="_blank" href="/search/session/1.htm">session</a>
                                    <div>在利用tomcat-redis-session-manager做session同步时,遇到了在session保存一个自定义对象时,修改该对象中的某个属性,session未进行序列化,属性没有被存储到redis中。   在 tomcat-redis-session-manager的github上有如下说明:   Session Change Tracking 
As noted in the &qu</div>
                                </li>
                                <li><a href="/article/2060.htm"
                                       title="《代码大全》表驱动法-Table Driven Approach-1" target="_blank">《代码大全》表驱动法-Table Driven Approach-1</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a>
                                    <div>关于Table Driven Approach的一篇非常好的文章: 
 
http://www.codeproject.com/Articles/42732/Table-driven-Approach 
 
 
package com.ljn.base;

import java.util.Random;

public class TableDriven {

    public </div>
                                </li>
                                <li><a href="/article/2187.htm"
                                       title="Sybase封锁原理" target="_blank">Sybase封锁原理</a>
                                    <span class="text-muted">chicony</span>
<a class="tag" taget="_blank" href="/search/Sybase/1.htm">Sybase</a>
                                    <div>       昨天在操作Sybase IQ12.7时意外操作造成了数据库表锁定,不能删除被锁定表数据也不能往其中写入数据。由于着急往该表抽入数据,因此立马着手解决该表的解锁问题。     无奈此前没有接触过Sybase IQ12.7这套数据库产品,加之当时已属于下班时间无法求助于支持人员支持,因此只有借助搜索引擎强大的</div>
                                </li>
                                <li><a href="/article/2314.htm"
                                       title="java异常处理机制" target="_blank">java异常处理机制</a>
                                    <span class="text-muted">CrazyMizzz</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>java异常关键字有以下几个,分别为 try catch final throw throws 
他们的定义分别为 
try:    Opening exception-handling statement. 
catch:  Captures the exception. 
finally: Runs its code before terminating</div>
                                </li>
                                <li><a href="/article/2441.htm"
                                       title="hive 数据插入DML语法汇总" target="_blank">hive 数据插入DML语法汇总</a>
                                    <span class="text-muted">daizj</span>
<a class="tag" taget="_blank" href="/search/hive/1.htm">hive</a><a class="tag" taget="_blank" href="/search/DML/1.htm">DML</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E6%8F%92%E5%85%A5/1.htm">数据插入</a>
                                    <div>Hive的数据插入DML语法汇总1、Loading files into tables语法:1) LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]解释:1)、上面命令执行环境为hive客户端环境下: hive>l</div>
                                </li>
                                <li><a href="/article/2568.htm"
                                       title="工厂设计模式" target="_blank">工厂设计模式</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a>
                                    <div>  使用设计模式是促进最佳实践和良好设计的好办法。设计模式可以提供针对常见的编程问题的灵活的解决方案。  工厂模式 
工厂模式(Factory)允许你在代码执行时实例化对象。它之所以被称为工厂模式是因为它负责“生产”对象。工厂方法的参数是你要生成的对象对应的类名称。  
Example #1 调用工厂方法(带参数)   
<?phpclass Example{ </div>
                                </li>
                                <li><a href="/article/2695.htm"
                                       title="mysql字符串查找函数" target="_blank">mysql字符串查找函数</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a>
                                    <div>  
FIND_IN_SET(str,strlist) 
假如字符串str 在由N 子链组成的字符串列表strlist 中,则返回值的范围在1到 N 之间。一个字符串列表就是一个由一些被‘,’符号分开的自链组成的字符串。如果第一个参数是一个常数字符串,而第二个是type SET列,则   FIND_IN_SET() 函数被优化,使用比特计算。如果str不在strlist 或st</div>
                                </li>
                                <li><a href="/article/2822.htm"
                                       title="jvm内存管理" target="_blank">jvm内存管理</a>
                                    <span class="text-muted">easterfly</span>
<a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a>
                                    <div>一、JVM堆内存的划分 
 分为年轻代和年老代。年轻代又分为三部分:一个eden,两个survivor。 
 工作过程是这样的:e区空间满了后,执行minor gc,存活下来的对象放入s0, 对s0仍会进行minor gc,存活下来的的对象放入s1中,对s1同样执行minor gc,依旧存活的对象就放入年老代中; 
 年老代满了之后会执行major gc,这个是stop the word模式,执行</div>
                                </li>
                                <li><a href="/article/2949.htm"
                                       title="CentOS-6.3安装配置JDK-8" target="_blank">CentOS-6.3安装配置JDK-8</a>
                                    <span class="text-muted">gengzg</span>
<a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a>
                                    <div>JAVA_HOME=/usr/java/jdk1.8.0_45
JRE_HOME=/usr/java/jdk1.8.0_45/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME</div>
                                </li>
                                <li><a href="/article/3076.htm"
                                       title="【转】关于web路径的获取方法" target="_blank">【转】关于web路径的获取方法</a>
                                    <span class="text-muted">huangyc1210</span>
<a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/%E8%B7%AF%E5%BE%84/1.htm">路径</a>
                                    <div>假定你的web application 名称为news,你在浏览器中输入请求路径:  http://localhost:8080/news/main/list.jsp  则执行下面向行代码后打印出如下结果:  1、 System.out.println(request.getContextPath()); //可返回站点的根路径。也就是项</div>
                                </li>
                                <li><a href="/article/3203.htm"
                                       title="php里获取第一个中文首字母并排序" target="_blank">php里获取第一个中文首字母并排序</a>
                                    <span class="text-muted">远去的渡口</span>
<a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a>
                                    <div>很久没来更新博客了,还是觉得工作需要多总结的好。今天来更新一个自己认为比较有成就的问题吧。 最近在做储值结算,需求里结算首页需要按门店的首字母A-Z排序。我的数据结构原本是这样的: 
Array
(
    [0] => Array
        (
            [sid] => 2885842
            [recetcstoredpay] =&g</div>
                                </li>
                                <li><a href="/article/3330.htm"
                                       title="java内部类" target="_blank">java内部类</a>
                                    <span class="text-muted">hm4123660</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%86%85%E9%83%A8%E7%B1%BB/1.htm">内部类</a><a class="tag" taget="_blank" href="/search/%E5%8C%BF%E5%90%8D%E5%86%85%E9%83%A8%E7%B1%BB/1.htm">匿名内部类</a><a class="tag" taget="_blank" href="/search/%E6%88%90%E5%91%98%E5%86%85%E9%83%A8%E7%B1%BB/1.htm">成员内部类</a><a class="tag" taget="_blank" href="/search/%E6%96%B9%E6%B3%95%E5%86%85%E9%83%A8%E7%B1%BB/1.htm">方法内部类</a>
                                    <div>      在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的.class文件,但是前面冠以外部类的类名和$符号。内部类可以间接解决多继承问题,可以使用内部类继承一个类,外部类继承一个类,实现多继承。 
     &nb</div>
                                </li>
                                <li><a href="/article/3457.htm"
                                       title="Caused by: java.lang.IncompatibleClassChangeError: class org.hibernate.cfg.Exten" target="_blank">Caused by: java.lang.IncompatibleClassChangeError: class org.hibernate.cfg.Exten</a>
                                    <span class="text-muted">zhb8015</span>

                                    <div>maven pom.xml关于hibernate的配置和异常信息如下,查了好多资料,问题还是没有解决。只知道是包冲突,就是不知道是哪个包....遇到这个问题的分享下是怎么解决的。。 
  
maven pom: 
  
		<dependency>
			<groupId>org.hibernate</groupId>
			<ar</div>
                                </li>
                                <li><a href="/article/3584.htm"
                                       title="Spark 性能相关参数配置详解-任务调度篇" target="_blank">Spark 性能相关参数配置详解-任务调度篇</a>
                                    <span class="text-muted">Stark_Summer</span>
<a class="tag" taget="_blank" href="/search/spark/1.htm">spark</a><a class="tag" taget="_blank" href="/search/cache/1.htm">cache</a><a class="tag" taget="_blank" href="/search/cpu/1.htm">cpu</a><a class="tag" taget="_blank" href="/search/%E4%BB%BB%E5%8A%A1%E8%B0%83%E5%BA%A6/1.htm">任务调度</a><a class="tag" taget="_blank" href="/search/yarn/1.htm">yarn</a>
                                    <div>随着Spark的逐渐成熟完善, 越来越多的可配置参数被添加到Spark中来, 本文试图通过阐述这其中部分参数的工作原理和配置思路, 和大家一起探讨一下如何根据实际场合对Spark进行配置优化。 
  
由于篇幅较长,所以在这里分篇组织,如果要看最新完整的网页版内容,可以戳这里:http://spark-config.readthedocs.org/,主要是便</div>
                                </li>
                                <li><a href="/article/3711.htm"
                                       title="css3滤镜" target="_blank">css3滤镜</a>
                                    <span class="text-muted">wangkeheng</span>
<a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a>
                                    <div>经常看到一些网站的底部有一些灰色的图标,鼠标移入的时候会变亮,开始以为是js操作src或者bg呢,搜索了一下,发现了一个更好的方法:通过css3的滤镜方法。 
 
html代码: 
 
<a href='' class='icon'><img src='utv.jpg' /></a> 
css代码: 
 
.icon{-webkit-filter: graysc</div>
                                </li>
                </ul>
            </div>
        </div>
    </div>

<div>
    <div class="container">
        <div class="indexes">
            <strong>按字母分类:</strong>
            <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a
                href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a
                href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a
                href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a
                href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a
                href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a
                href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a
                href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a
                href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a>
        </div>
    </div>
</div>
<footer id="footer" class="mb30 mt30">
    <div class="container">
        <div class="footBglm">
            <a target="_blank" href="/">首页</a> -
            <a target="_blank" href="/custom/about.htm">关于我们</a> -
            <a target="_blank" href="/search/Java/1.htm">站内搜索</a> -
            <a target="_blank" href="/sitemap.txt">Sitemap</a> -
            <a target="_blank" href="/custom/delete.htm">侵权投诉</a>
        </div>
        <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved.
<!--            <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>-->
        </div>
    </div>
</footer>
<!-- 代码高亮 -->
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script>
<link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/>
<script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script>





</body>

</html>