node,前端工作资料,hashmap面试题

上面代码执行完后,就没有变化,因为根本没有xxx这样的目录。

2. node.js EADDRINUSE 错误

======================================================================================

在这里插入图片描述

如果遇到这种在错误,eaddrinuse(address in use)意思就是端口被占用。

3. node.js 传递图片

=============================================================================

在其他的html文件上面设置了图片,在服务器端是访问不到的!因为服务器端需要请求图片位置,所以我们要在服务器端给图片写一个传递图片的命令。

图片类型对应的Content-Type,可以去开源中国查看一下。

修改一下06.demo.js文件:

//加载http模块

var http = require(‘http’);

//加载fs模块

var fs = require(‘fs’);

//加载path模块

var path = require(‘path’)

http.createServer(function(req,res){

if (req.url === ‘/’ || req.url === ‘/index’) {

//读取index.html 文件

//这里读取不需要使用utf8来转换,因为将data传到浏览器,也是需要Buffer二进制码的形式。

//当Buffer数据传到浏览器端后,如果index.html中设置了utf-8,浏览器就会识别相关内容,不会乱码。

fs.readFile(path.join(__dirname,‘demo’,‘index.html’),function(err,data){

if (err) {

throw err;

}

//将读取到的index.html中的内容直接发送给浏览器。

res.end(data);

});

}else if(req.url === ‘/login’){

fs.readFile(path.join(__dirname,‘demo’,‘login.html’),function(err,data){

if (err) {

throw err;

}

res.end(data);

});

}else if(req.url === ‘/register’){

fs.readFile(path.join(__dirname,‘demo’,‘register.html’),function(err,data){

if (err) {

throw err;

}

res.end(data);

});

}else if(req.url === ‘/images/a.jpg’){

//这里就是请求images命令下的a.jpg图片

fs.readFile(path.join(__dirname,‘images’,‘a.jpg’),function(err,data){

if (err) {

throw err;

}

//这里对于不同的图片类型对应不同的type,https://tool.oschina.net/commons,查看一下对应的图片类型。

res.setHeader(‘Content-Type’,‘image/jpeg’);

res.end(data);

});

}else {

fs.readFile(path.join(__dirname,‘demo’,‘error(404).html’),function(err,data){

if (err) {

throw err;

}

res.end(data);

});

}

}).listen(1234,function(){

//这里端口可以随便修改

console.log(‘服务器启动了,请访问:http://localhost:1234’);

});

在上面再添加了一个关于images/a.jpg路径的else if语句,这样在访问之前的html文件时候,就可以继续访问图片了。看图下:在index中加入了一个图片。

注意:这里Content-Type对于不同的图片类型对应不同的类型,查看一下对应的图片类型。

在这里插入图片描述

4.node.js 传递CSS文件

==============================================================================

和传递图片一样,这里还是使用添加else if语句来添加css文件,传递给浏览器端。

再次修改06.demo.js文件:

//加载http模块

var http = require(‘http’);

//加载fs模块

var fs = require(‘fs’);

//加载path模块

var path = require(‘path’)

http.createServer(function(req,res){

if (req.url === ‘/’ || req.url === ‘/index’) {

//读取index.html 文件

//这里读取不需要使用utf8来转换,因为将data传到浏览器,也是需要Buffer二进制码的形式。

//当Buffer数据传到浏览器端后,如果index.html中设置了utf-8,浏览器就会识别相关内容,不会乱码。

fs.readFile(path.join(__dirname,‘demo’,‘index.html’),function(err,data){

if (err) {

throw err;

}

//将读取到的index.html中的内容直接发送给浏览器。

res.end(data);

});

}else if(req.url === ‘/login’){

fs.readFile(path.join(__dirname,‘demo’,‘login.html’),function(err,data){

if (err) {

throw err;

}

res.end(data);

});

}else if(req.url === ‘/register’){

fs.readFile(path.join(__dirname,‘demo’,‘register.html’),function(err,data){

if (err) {

throw err;

}

res.end(data);

});

}else if(req.url === ‘/images/a.jpg’){

//这里就是请求images命令下的a.jpg图片

fs.readFile(path.join(__dirname,‘images’,‘a.jpg’),function(err,data){

if (err) {

throw err;

}

//这里对于不同的图片类型对应不同的type,https://tool.oschina.net/commons,查看一下对应的图片类型。

res.setHeader(‘Content-Type’,‘image/jpeg’);

res.end(data);

});

}else if(req.url === ‘/css/index.css’){

//设置需要传递的css内容

fs.readFile(path.join(__dirname,‘css’,‘index.css’),function(err,data){

if (err) {

throw err;

}

//设置响应头为text/css,因为这里是css文件。

res.setHeader(‘Content-Type’,‘text/css’);

res.end(data);

});

}else {

fs.readFile(path.join(__dirname,‘demo’,‘error(404).html’),function(err,data){

if (err) {

throw err;

}

res.end(data);

});

}

}).listen(1234,function(){

//这里端口可以随便修改

console.log(‘服务器启动了,请访问:http://localhost:1234’);

});

对应css路径和imaga图片一样,还有index.html文件添加css文件。如图下:

在这里插入图片描述

在这里插入图片描述

5. node.js 模拟apache服务器

====================================================================================

上面浏览器端每发送一个请求,无论是css还是图片,html网页,都重新创建else if()语句来查找文件内容。

在解决上面的代码冗余,就要用到了mime模块,它不是node.js模块的内容,而是属于第三方的,进入mime模块查看如何安装和使用。

注意:

nvm安装的时候大体上分为了node和npm,我在运行的时候,发现只有node没有npm!这应该是安装的时候出了问题,我是直接去官方下载了原先的版本,放到nvm显示node版本目录下,就可以了。

在这里插入图片描述

查看了mime的使用和安装,这里使用npm来安装mime

npm install mime

在这里插入图片描述

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
img

常用的JavaScript设计模式

  • 单体模式

  • 工厂模式

  • 例模式

函数

NDM4MQ==,size_16,color_FFFFFF,t_70)

函数

  • 9
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: HashMap是Java中的一个常用数据结构,它的底层是由hash数组和单向链表实现的。每个数组元素都是一个链表,通过Node内部类实现了Map.Entry接口来存储键值对。HashMap通过put和get方法来存储和获取数据。\[1\] 在重写equals方法时,我们需要同时重写hashCode方法。这是因为在HashMap中,查找value是通过key的hashCode来进行的。当找到对应的hashCode后,会使用equals方法来比较传入的对象和HashMap中的key对象是否相同。因此,为了保证正确的查找和比较,我们需要同时重写equals和hashCode方法。\[2\]\[3\] HashMap在什么时候进行扩容呢?当HashMap中的元素数量超过了负载因子(默认为0.75)与当前容量的乘积时,就会进行扩容。扩容是为了保持HashMap的性能,因为当元素数量过多时,链表的长度会变长,查找效率会下降。扩容的过程是创建一个新的数组,将原数组中的元素重新分配到新数组中,然后将新数组替换为原数组。\[3\] #### 引用[.reference_title] - *1* *2* *3* [史上最全Hashmap面试总结,51道附带答案,持续更新中...](https://blog.csdn.net/androidstarjack/article/details/124507171)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值