- Java中HashMap底层数据结构及主要参数?
山间漫步人生路
java数据结构开发语言
在Java中,HashMap的底层数据结构主要基于数组和链表,同时在Java8及以后的版本中,当链表长度超过一定阈值时,链表会转换为红黑树来优化性能。这种结构结合了数组和链表的优点,既提供了快速的随机访问,又允许动态地扩展存储桶的大小。HashMap的主要参数包括:初始容量(InitialCapacity):这是HashMap在创建时设定的桶数组的大小。默认值为16。这个值可以根据预计存储的键值对
- Maxwell监听mysql的binlog日志变化写入kafka消费者
澄绪猿
mysqlkafka数据库
一.环境:maxwell:v1.29.2(从1.30开始maxwell停止了对java8的使用,改为为11)maxwell1.29.2这个版本对mysql8.0以后的缺少utf8mb3字符的解码问题,需要对原码中加上一个部分内容:具体也给大家做了总结:关于v1.29.2版本的Maxwell存在于mysql8.0后版本部分源码字符集处理确实问题-CSDN博客二.程序这里还是那一个kafka模拟器来实
- Java常用工具方法及工具类
tansci
Javautil
在平时开发中遇到的各种格式化工具类,整理还在继续中......目录二、数值类型保留小数点三、List去重方式四、使用AES加解密五、数字的加、减、乘、除操作六、Map转实体类七、获取周或月的开始&结束日期八、Java8日期时间类(LocalDate)九、判断是否是数字字符串一、时间工具类字符串时间格式后返回字符串返回某个时间段内的时分整点时间段packagecom.example.demo.dat
- 都Java16了,你还在Java8?!
TroubleBoy丶
javaSEJava16javajdk
没错,甲骨文于April20,2021更新了Java™SEDevelopmentKit16.0.1(JDK16.0.1)。我们来看看Java16更新了什么。1.JEP389:ForeignLinkerAPI(Incubator)IntroduceanAPIthatoffersstatically-typed,pure-Javaaccesstonativecode.ThisAPI,togetherw
- Java8新特性之stream、map和reduce
义阳
学习总结java8集合
Java8新了streamAPI,需要注意的是Stream和I/O中的流是没有关系的,这个stream主要是要来处理集合数据的,可以将其看作一个高级迭代器。在Collection接口中新增了非抽象的stream方法来获取集合的流。另外,Java8中新增了一个Optional类用于处理空指针异常,该类位于java.util包下,使用这个类可以更好的支持函数式编程,并且可以简化以前对null的判断。s
- 学习札记-Java8系列-10-详解Stream操作
你的学习札记
学习札记-Java8系列-10-详解Stream操作操作步骤使用StreamAPI操作数据可以分为以下几个步骤:1)创建流:通过数据源(如:集合、数组)获取流2)处理流:(中的数据)对流中的数据进行处理(处理是延迟执行的)3)收集流:(中的数据)通过调用收集方法,真正执行处理操作,并产生结果创建流创建一个流非常简单,有以下几种常用的方式:1)Collection的默认方法stream()和para
- 【Spring连载】使用Spring Data的Repositories----存储库方法的null处理
85程序员老王
SpringDataspring数据库java后端
【Spring连载】使用SpringData的Repositories----存储库方法的null处理一、Nullability注解二、基于Kotlin存储库中的Nullability从SpringData2.0开始,返回单个聚合实例的存储库CRUD方法使用Java8的Optional来指示潜在的值缺失。除此之外,SpringData还支持在查询方法上返回以下包装类型:com.google.com
- 分布式ID选型对比(2)
qq_35255384
框架部分特定功能springboot分布式分布式ID
数据库号段模式一,引入依赖:mysqlmysql-connector-java8.0.19org.mybatis.spring.bootmybatis-spring-boot-starter2.2.2二,新建表CREATETABLE`id_generator`(`id`intNOTNULL,`max_id`bigintNOTNULLCOMMENT'当前最大id',`step`intNOTNULLC
- Android D8 编译器 和 R8 工具,【一篇文章搞懂】
安卓开发top
Androidandroidjavaeclipse移动开发
android.enableIncrementalDesugaring=false.android.enableDesugar=false2.1Lambda表达式Java8中一个重大变更是引入Lambda表达式。publicclassLambda{publicstaticvoidmain(String[]args){logDebug(msg->System.out.println(msg),"He
- java8stream常见操作
mywaya2333
开发语言
map映射importjava.util.Arrays;importjava.util.List;importjava.util.Map;importjava.util.stream.Collectors;publicclassStreamMapExample{publicstaticvoidmain(String[]args){Listnames=Arrays.asList("Alice","B
- Java8学习笔记之测试Lambda表达式
夏与清风
通常,好的软件工程实践一定少不了单元测试,以此来保证程序的行为与预期一致。通过测试用例确保代码中的每个组成部分都实现预期的结果。如下:publicclassPoint{privatefinalintx;privatefinalinty;privatePoint(intx,inty){this.x=x;this.y=y;}publicintgetX(){returnx;}publicintgetY(
- Java8Optional笔记240220
kfepiza
JAVA笔记java
Java8OptionalOptional并不是提供功能,而是提供一种null处理的规范,大家都用的话可能代码阅读起来容易一点?源码很简单获取实例(包装值)的3个方法:ofNullable(和of(和empty()构造器是private的,有3个获取实例的静态方法ofNullable(和of(和empty()Optionalop=Optional.ofNullable(指定类实例);//可接受nu
- [转载]Java8并发教程 - Thread和Executors
小小少年Boy
原文:Java8并发教程-Thread和Executors本教程分为三个部分,这是第一部分.在本教程中,我们大量使用了Java8中的lambda表达式.如果你对此不是很熟悉,请自行查阅资料来了解.当然,你也可以看这篇.1ThreadandRunnable现代操作系统,都支持通过进程和线程来实现并发.进程是程序的运行时的实例.程序是静态的,而进程是动态的.进程与进程之间,相互独立.例如,如果你运行一
- java8-用optional取代nu11
AIGPTchina
java
本章内容口nu11引用引发的问题,以及为什么要避免nu11引用从nu11到optiona1:以nu11安全的方式重写你的域模型让optiona1发光发热:去除代码中对nu11的检查读取optiona1中可能值的几种方法口对可能缺失值的再思考如果你作为Java程序员曾经遭遇过Nu11PointerException,请举起手。如果这是你最常遭遇的异常,请继续举手。非常可惜,这个时刻,我们无法看到对方
- java8-重构、测试、调试
AIGPTchina
重构java
8.1.1改善代码的可读性改善代码的可读性到底意味着什么?我们很难定义什么是好的可读性,因为这可能非常主观。通常的理解是,“别人理解这段代码的难易程度”。改善可读性意味着你要确保你的代码能非常容易地被包括自己在内的所有人理解和维护。为了确保你的代码能被其他人理解,有几个步骤可以尝试,比如确保你的代码附有良好的文档,并严格遵守编程规范。跟之前的版本相比较,Java8的新特性也可以帮助提升代码的可读性
- 解决IDEA2023版本创建Sping项目只能勾选17和21,无法使用Java8的问题
Chen-GW
intellij-idea
前言想创建一个springboot的项目,本地安装的是1.8,但是在使用SpringInitializr创建项目时,发现版本只有17和21。Java17和Java8(JDK1.8)的区别版本号:Java17是JavaSE17的版本,而JDK1.8是JavaSE8的版本。发布时间:Java17发布于2021年,而JDK1.8发布于2014年.新特性:Java17相对于JDK1.8,新增了很多特性和改
- 【Java8】Stream流对List进行输出的一些语句
林坰
Java
importjava.util.Arrays;importjava.util.List;importjava.util.Random;importjava.util.function.Predicate;importjava.util.stream.Collectors;//jdk1.8之前接口中不能实现方法。//jdk1.8之后加入了default关键字,可以在接口中实现方法interfacem
- IDEA2023版本创建Spring项目只能勾选17和21却无法使用Java8
huas_mcfeng
Javaspringjava后端
问题:新建springboot项目时,发现java版本只有17和21解决办法:将serverURL中的https://start.spring.io/更换成http://start.springboot.io/或者https://start.aliyun.com/截图如下:原因分析Spring官方发布SpringBoot3.0.0的时候告知了一些情况,Java17将成为未来的主流版本,所有的Jav
- Java Stream流:forEach、filter、map、count、limit、skip、concat、综合案例
还行turbo
Java学习javastream
文章目录Stream流JDK1.8引言:通过案例展示Stream流的作用1、流式思想2、Stream特点3、获取Stream流对象4、常用方法逐一处理:forEach过滤:filter映射:map统计个数:count取用前几个:limit跳过前几个:skip组合:concat练习:集合元素的处理Stream流JDK1.8说到Stream容易想到IOStream,而流不一定是IO流。在Java8中,
- 关于Java中时间转化的util小工具
在Java中,我们经常需要处理日期和时间的转换。这是一个常见的需求,因此有很多内置的类和方法可以帮助我们完成这些任务。在Java8之前,我们主要使用java.util.Date和java.util.Calendar类。然而,这些类存在一些问题,例如不一致的API,缺乏线程安全等。Java8引入了新的日期和时间API,它解决了这些问题,并提供了更直观和易用的方法。在Java8中,java.time包
- java8获取当前时间前一天
高粱
//获取当前日期LocalDatetoday=LocalDate.now();//获取当前年份第一天StringfirstDayOfYear=today.with(firstDayOfYear()).toString();//获取当前日期的前一天Stringyesterday=today.plusDays(-1).toString();
- 响应式编程要点 (Java)
与遨游于天地
java开发语言
整体学习概览前置知识函数式编程+Lambda表达式实践、Java8StreamApi的使用响应式编程的原理和思想ReactiveStream的思想和Api实践Reactor思想和Api实践WebFlux的使用SpringDataR2DBC前置知识:函数式编程函数式编程要点-CSDN博客响应式编程原理和思想全链路无阻塞负压模式消息驱动事件驱动观察者模式函数式+声明式编程+链式调用可编排装配流水线Re
- 多线程基础(二十一):StampedLock源码分析
冬天里的懒喵
1.类结构及其注释1.1类结构StampedLock是在java8中引入的一个新的并发工具,主要为了解决此前java7中Lock实现上的一些问题,如ReentrantReadWriteLock的锁饥饿问题。StampedLock是一个全新的Lock,其内部通过ReadWriteLockView、ReadLockView、writeLockView这三个内部类分别实现了Lock和ReadWriteL
- 抛弃for循环遍历list
BUG指挥官
java开发语言
Java8API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。Stream使用一种类似用SQL语句从数据库查询数据的直观方式来提供一种对Java集合运算和表达的高阶抽象。filterfilter:过滤,就是过滤器,符合条件的通过,不符合条件的过滤掉//筛选出成绩不为空的学生人数count=list.stream().filter(p->null!=p.getScore()
- Decompiled .class file, bytecode version:52.0 (java8)
hello_zzw
JavaIDEAjava源码注释
IDEA查了源码是出现以下问题:Decompiled.classfile,bytecodeversion:52.0(java8)在下载了对应的sources.jar和javadoc.jar后还是这个问题,方法上没有出现对应的注释,即使是在当前页面进行sources的下载以及下载后sources的选择,结果依旧。根据https://blog.csdn.net/qq_26558047/article/
- Spring Boot 整合 MongoDB
GaoJamie
后端mongodbspringboot数据库
本教程将介绍如何在SpringBoot中使用MongoDB数据库。我们将使用SpringDataMongoDB来简化数据访问。前置条件Java8或更高版本SpringBoot2.0或更高版本MongoDB数据库步骤1.添加依赖在pom.xml文件中添加SpringBoot和SpringDataMongoDB的依赖:org.springframework.bootspring-boot-starte
- Java 版本 对应类文件版本
代码不多程序员
eclipse
Java1.1对应类文件版本45.3Java1.2对应类文件版本46.0Java1.3对应类文件版本47.0Java1.4对应类文件版本48.0Java5对应类文件版本49.0Java6对应类文件版本50.0Java7对应类文件版本51.0Java8对应类文件版本52.0Java9对应类文件版本53.0Java10对应类文件版本54.0Java11对应类文件版本55.0Java12对应类文件版本5
- 二、ActiveMQ安装
青啊青斯
#ActiveMQactivemq
ActiveMQ安装一、相关环境二、安装Java8三、下载安装包四、启动五、其他命令六、开放端口七、后台管理一、相关环境环境:Centos7.9安装ActiveMQ版本:5.15.9JDK8二、安装Java8安装教程:https://qingsi.blog.csdn.net/article/details/136129131三、下载安装包ActiveMQ版本:5.15.9任意版本下载地址5.15.
- 【Jvm】运行时数据区域(Runtime Data Area)原理及应用场景
墩墩分墩
JVMjvm堆虚拟机栈元空间永久代运行时数据区
文章目录前言:Jvm整体组成一.JDK的内存区域变迁Java8虚拟机启动参数二.堆0.堆的概念1.堆的内存分区2.堆与GC2.1.堆的分代结构2.2.堆的分代GC2.3.堆的GC案例2.4.堆垃圾回收方式3.什么是内存泄露4.堆栈的区别5.堆、方法区和栈的关系三.虚拟机栈0.虚拟机栈概念1.线程栈的结构2.栈帧局部变量表(LocalVariableTable)操作数栈(OperandStack)动
- Linux/Ubuntu16.04安装kafka
前端技术小咖
最近开发的项目计划使用Kafka来实现日志系统,开发的过程中在自己的服务器上搭建了Kafka的开发环境,由于我的服务器是Ubuntu16.04.7LTS(GNU/Linux5.6.7-050607-genericx86_64),下面以Ubuntu16.04为例讲解Kafka的安装步骤。Kafka的运行依赖Java8和ZooKeeper两个环境,所以下面将从安装JDK8和ZooKeeper的环境开始
- rust的指针作为函数返回值是直接传递,还是先销毁后创建?
wudixiaotie
返回值
这是我自己想到的问题,结果去知呼提问,还没等别人回答, 我自己就想到方法实验了。。
fn main() {
let mut a = 34;
println!("a's addr:{:p}", &a);
let p = &mut a;
println!("p's addr:{:p}", &a
- java编程思想 -- 数据的初始化
百合不是茶
java数据的初始化
1.使用构造器确保数据初始化
/*
*在ReckInitDemo类中创建Reck的对象
*/
public class ReckInitDemo {
public static void main(String[] args) {
//创建Reck对象
new Reck();
}
}
- [航天与宇宙]为什么发射和回收航天器有档期
comsci
地球的大气层中有一个时空屏蔽层,这个层次会不定时的出现,如果该时空屏蔽层出现,那么将导致外层空间进入的任何物体被摧毁,而从地面发射到太空的飞船也将被摧毁...
所以,航天发射和飞船回收都需要等待这个时空屏蔽层消失之后,再进行
&
- linux下批量替换文件内容
商人shang
linux替换
1、网络上现成的资料
格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径`
linux sed 批量替换多个文件中的字符串
sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir`
例如:替换/home下所有文件中的www.admi
- 网页在线天气预报
oloz
天气预报
网页在线调用天气预报
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transit
- SpringMVC和Struts2比较
杨白白
springMVC
1. 入口
spring mvc的入口是servlet,而struts2是filter(这里要指出,filter和servlet是不同的。以前认为filter是servlet的一种特殊),这样就导致了二者的机制不同,这里就牵涉到servlet和filter的区别了。
参见:http://blog.csdn.net/zs15932616453/article/details/8832343
2
- refuse copy, lazy girl!
小桔子
copy
妹妹坐船头啊啊啊啊!都打算一点点琢磨呢。文字编辑也写了基本功能了。。今天查资料,结果查到了人家写得完完整整的。我清楚的认识到:
1.那是我自己觉得写不出的高度
2.如果直接拿来用,很快就能解决问题
3.然后就是抄咩~~
4.肿么可以这样子,都不想写了今儿个,留着作参考吧!拒绝大抄特抄,慢慢一点点写!
- apache与php整合
aichenglong
php apache web
一 apache web服务器
1 apeche web服务器的安装
1)下载Apache web服务器
2)配置域名(如果需要使用要在DNS上注册)
3)测试安装访问http://localhost/验证是否安装成功
2 apache管理
1)service.msc进行图形化管理
2)命令管理,配
- Maven常用内置变量
AILIKES
maven
Built-in properties
${basedir} represents the directory containing pom.xml
${version} equivalent to ${project.version} (deprecated: ${pom.version})
Pom/Project properties
Al
- java的类和对象
百合不是茶
JAVA面向对象 类 对象
java中的类:
java是面向对象的语言,解决问题的核心就是将问题看成是一个类,使用类来解决
java使用 class 类名 来创建类 ,在Java中类名要求和构造方法,Java的文件名是一样的
创建一个A类:
class A{
}
java中的类:将某两个事物有联系的属性包装在一个类中,再通
- JS控制页面输入框为只读
bijian1013
JavaScript
在WEB应用开发当中,增、删除、改、查功能必不可少,为了减少以后维护的工作量,我们一般都只做一份页面,通过传入的参数控制其是新增、修改或者查看。而修改时需将待修改的信息从后台取到并显示出来,实际上就是查看的过程,唯一的区别是修改时,页面上所有的信息能修改,而查看页面上的信息不能修改。因此完全可以将其合并,但通过前端JS将查看页面的所有信息控制为只读,在信息量非常大时,就比较麻烦。
- AngularJS与服务器交互
bijian1013
JavaScriptAngularJS$http
对于AJAX应用(使用XMLHttpRequests)来说,向服务器发起请求的传统方式是:获取一个XMLHttpRequest对象的引用、发起请求、读取响应、检查状态码,最后处理服务端的响应。整个过程示例如下:
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange
- [Maven学习笔记八]Maven常用插件应用
bit1129
maven
常用插件及其用法位于:http://maven.apache.org/plugins/
1. Jetty server plugin
2. Dependency copy plugin
3. Surefire Test plugin
4. Uber jar plugin
1. Jetty Pl
- 【Hive六】Hive用户自定义函数(UDF)
bit1129
自定义函数
1. 什么是Hive UDF
Hive是基于Hadoop中的MapReduce,提供HQL查询的数据仓库。Hive是一个很开放的系统,很多内容都支持用户定制,包括:
文件格式:Text File,Sequence File
内存中的数据格式: Java Integer/String, Hadoop IntWritable/Text
用户提供的 map/reduce 脚本:不管什么
- 杀掉nginx进程后丢失nginx.pid,如何重新启动nginx
ronin47
nginx 重启 pid丢失
nginx进程被意外关闭,使用nginx -s reload重启时报如下错误:nginx: [error] open() “/var/run/nginx.pid” failed (2: No such file or directory)这是因为nginx进程被杀死后pid丢失了,下一次再开启nginx -s reload时无法启动解决办法:nginx -s reload 只是用来告诉运行中的ng
- UI设计中我们为什么需要设计动效
brotherlamp
UIui教程ui视频ui资料ui自学
随着国际大品牌苹果和谷歌的引领,最近越来越多的国内公司开始关注动效设计了,越来越多的团队已经意识到动效在产品用户体验中的重要性了,更多的UI设计师们也开始投身动效设计领域。
但是说到底,我们到底为什么需要动效设计?或者说我们到底需要什么样的动效?做动效设计也有段时间了,于是尝试用一些案例,从产品本身出发来说说我所思考的动效设计。
一、加强体验舒适度
嗯,就是让用户更加爽更加爽的用你的产品。
- Spring中JdbcDaoSupport的DataSource注入问题
bylijinnan
javaspring
参考以下两篇文章:
http://www.mkyong.com/spring/spring-jdbctemplate-jdbcdaosupport-examples/
http://stackoverflow.com/questions/4762229/spring-ldap-invoking-setter-methods-in-beans-configuration
Sprin
- 数据库连接池的工作原理
chicony
数据库连接池
随着信息技术的高速发展与广泛应用,数据库技术在信息技术领域中的位置越来越重要,尤其是网络应用和电子商务的迅速发展,都需要数据库技术支持动 态Web站点的运行,而传统的开发模式是:首先在主程序(如Servlet、Beans)中建立数据库连接;然后进行SQL操作,对数据库中的对象进行查 询、修改和删除等操作;最后断开数据库连接。使用这种开发模式,对
- java 关键字
CrazyMizzz
java
关键字是事先定义的,有特别意义的标识符,有时又叫保留字。对于保留字,用户只能按照系统规定的方式使用,不能自行定义。
Java中的关键字按功能主要可以分为以下几类:
(1)访问修饰符
public,private,protected
p
- Hive中的排序语法
daizj
排序hiveorder byDISTRIBUTE BYsort by
Hive中的排序语法 2014.06.22 ORDER BY
hive中的ORDER BY语句和关系数据库中的sql语法相似。他会对查询结果做全局排序,这意味着所有的数据会传送到一个Reduce任务上,这样会导致在大数量的情况下,花费大量时间。
与数据库中 ORDER BY 的区别在于在hive.mapred.mode = strict模式下,必须指定 limit 否则执行会报错。
- 单态设计模式
dcj3sjt126com
设计模式
单例模式(Singleton)用于为一个类生成一个唯一的对象。最常用的地方是数据库连接。 使用单例模式生成一个对象后,该对象可以被其它众多对象所使用。
<?phpclass Example{ // 保存类实例在此属性中 private static&
- svn locked
dcj3sjt126com
Lock
post-commit hook failed (exit code 1) with output:
svn: E155004: Working copy 'D:\xx\xxx' locked
svn: E200031: sqlite: attempt to write a readonly database
svn: E200031: sqlite: attempt to write a
- ARM寄存器学习
e200702084
数据结构C++cC#F#
无论是学习哪一种处理器,首先需要明确的就是这种处理器的寄存器以及工作模式。
ARM有37个寄存器,其中31个通用寄存器,6个状态寄存器。
1、不分组寄存器(R0-R7)
不分组也就是说说,在所有的处理器模式下指的都时同一物理寄存器。在异常中断造成处理器模式切换时,由于不同的处理器模式使用一个名字相同的物理寄存器,就是
- 常用编码资料
gengzg
编码
List<UserInfo> list=GetUserS.GetUserList(11);
String json=JSON.toJSONString(list);
HashMap<Object,Object> hs=new HashMap<Object, Object>();
for(int i=0;i<10;i++)
{
- 进程 vs. 线程
hongtoushizi
线程linux进程
我们介绍了多进程和多线程,这是实现多任务最常用的两种方式。现在,我们来讨论一下这两种方式的优缺点。
首先,要实现多任务,通常我们会设计Master-Worker模式,Master负责分配任务,Worker负责执行任务,因此,多任务环境下,通常是一个Master,多个Worker。
如果用多进程实现Master-Worker,主进程就是Master,其他进程就是Worker。
如果用多线程实现
- Linux定时Job:crontab -e 与 /etc/crontab 的区别
Josh_Persistence
linuxcrontab
一、linux中的crotab中的指定的时间只有5个部分:* * * * *
分别表示:分钟,小时,日,月,星期,具体说来:
第一段 代表分钟 0—59
第二段 代表小时 0—23
第三段 代表日期 1—31
第四段 代表月份 1—12
第五段 代表星期几,0代表星期日 0—6
如:
*/1 * * * * 每分钟执行一次。
*
- KMP算法详解
hm4123660
数据结构C++算法字符串KMP
字符串模式匹配我们相信大家都有遇过,然而我们也习惯用简单匹配法(即Brute-Force算法),其基本思路就是一个个逐一对比下去,这也是我们大家熟知的方法,然而这种算法的效率并不高,但利于理解。
假设主串s="ababcabcacbab",模式串为t="
- 枚举类型的单例模式
zhb8015
单例模式
E.编写一个包含单个元素的枚举类型[极推荐]。代码如下:
public enum MaYun {himself; //定义一个枚举的元素,就代表MaYun的一个实例private String anotherField;MaYun() {//MaYun诞生要做的事情//这个方法也可以去掉。将构造时候需要做的事情放在instance赋值的时候:/** himself = MaYun() {*
- Kafka+Storm+HDFS
ssydxa219
storm
cd /myhome/usr/stormbin/storm nimbus &bin/storm supervisor &bin/storm ui &Kafka+Storm+HDFS整合实践kafka_2.9.2-0.8.1.1.tgzapache-storm-0.9.2-incubating.tar.gzKafka安装配置我们使用3台机器搭建Kafk
- Java获取本地服务器的IP
中华好儿孙
javaWeb获取服务器ip地址
System.out.println("getRequestURL:"+request.getRequestURL());
System.out.println("getLocalAddr:"+request.getLocalAddr());
System.out.println("getLocalPort:&quo