webpack 之 从 0 创建一个 webpack5 的项目

目录

目标

初始化 webpack 项目

配置核心功能

将 ES6+ 转 ES5

处理样式

处理图片等静态资源

创建 html 文件

开发服务器

清除打包文件

多环境打包


目标

  • 新建一个 webpack 5 项目,包括开发环境和生产环境

初始化 webpack 项目


 第一步:初始化  package.json 

npm init -y

 第二步:安装  webpack 

npm install webpack webpack-cli -D

注意

  1. -D 等价于 —— save-dev;  开发环境时所需依赖
  2. -S 等价于 —— save;  生产环境时所需依赖

第三步:初始化文件和目录

  • 创建  src  目录, src  目录下新增打包的入口文件 paths.js   index.js name.js 

 index.js 

import name from './name.js'
console.log(name)

 name.js 

const name = 'shanjian'
export default name
  • 创建  path.js  用于存放一些常用文件夹路径
/**
 * @description 常用文件夹路径
 * @author 山间
 */

const path = require('path')
const srcPath = path.join(__dirname, './', 'src')
const distPath = path.join(__dirname, './', 'dist')

module.exports = {
  srcPath,
  distPath
}
  •  创建  webpack.common.js  用于编写公用的  webpack  配置(在根目录创建)(这里要加一下添加 npm install webpack-merge _D 的命令)
// webpack.common.js
// 可将开发环境和生产环境下的公用配置抽离到该文件中,可避免重复

const path = require('path')
const { srcPath, distPath } = require('./paths')

module.exports = {
  entry: path.join(srcPath, 'index'),
  module: {
    rules: []
  }
}
  •  创建  webpack.dev.js  用于编写开发环境下的  webpack  配置(在根目录创建) 
// webpack.dev.js

const path = require('path')
const webpackCommonConf = require('./webpack.common')
const { merge } = require('webpack-merge')

module.exports = merge(webpackCommonConf, {
  mode: 'development'
})
  •  创建  webpack.prod.js  用于编写生产环境下的  webpack  配置(在根目录创建)
// webpack.prod.js

const path = require('path')
const { srcPath, distPath } = require('./paths')
const webpackCommonConf = require('./webpack.common')
const { merge } = require('webpack-merge')

module.exports = merge(webpackCommonConf,  {
  mode: 'production',
  output: {
    path: distPath,
    filename: 'main.[contenthash:8].js', // 打包时加上 hash 戳,注意:webpack 5 是 contenthash
 }
})
  • 修改  webpack.config.js  中的  script  字段,添加打包命令
{
    // ...
    "scripts": {
        ...
        "build": "webpack --config webpack.prod.js"
    },
    // ...
}

此时,在项目的根目录下输入 npm run build 命令,就可以对项目进行打包了。打包成功后,会在项目根目录下创建一个  dist  文件夹,里面的  main.contenthash.js  就是我们打包后的文件。

配置核心功能


将 ES6+ 转 ES5

由于有些浏览器无法解析 ES6+ 等高级语法,故需要将其转化为浏览器能够解析的低级语法(如:IE浏览器)

第一步:安装依赖 - @babel/core babel-loader @babel/preset-env

npm install @babel/core babel-loader @babel/preset-env -D

第二步:修改  webpack.common.js  配置

module.exports = {
    // ...
    module: {
        rules: [
            {
                test: /\.js$/,
                use: ['babel-loader'],
                include: srcPath,
                exclude: /node_modules/
            }
        ]
    }
}

 第三步:在根目录添加  .babelrc  文件并配置预置项

// .babelrc

{
    "presets": ["@babel/preset-env"],
    "plugins": []
}

注意:也可直接在  webpack.common.js  中配置预置项

// webpack.common.js

module.exports = {
    // ...
    module: {
        rules: [
            // ES6+ 语法处理
            {
                test: /\.js$/,
                use: {
                    loader: 'babel-loader',
                    options: {
                        presets: ['@babel/preset-env']
                    }
                }
            }
        ]
    }
}

处理样式

由于  webpack  默认只能打包处理 commonJS 规范的 js 文件,处理其他类型的文件都需要相对应的处理器进行处理,所以针对 css/less/sass 类型的样式文件,需要引入对应的处理器来处理。

第一步:安装依赖 - style-loader css-loader less less-loader

npm install style-loader css-loader less less-loader -D

第二步:修改  webpack.common.js  配置

// webpack.common.js

module.exports = {
    // ...
    module: {
        rules: [
            // ...
            {    
                test: /\.css$/,
                use: ['style-loader', 'css-loader'] // 注意 loader 的顺序是从后往前
            },
            {
                test: /\.less$/,
                use: ['style-loader', 'css-loader', 'less-loader']
            }
        ]
    }
}

处理图片等静态资源

同上,除 js 文件的其他文件使用  webpack  打包,也需要特定的处理器处理,如图片、视频等静态资源

第一步:安装依赖 - url-loader file-loader

npm install url-loader file-loader -D

第二步:注意,这里生产环境和开发环境可以分开配置,为什么这么做?先看配置,后面会解释。

开发环境:

// webpack.dev.js

module.exports = {
    // ...
    module: {
        rules: [
            // ...
            // 直接产出图片 url
            {    
                test: /\.(png|jpg|jpeg|gif)$/,
                use: 'file-loader'
            },
            // 直接产出视频、音频 url
            {
                test: /\.(mp4|ogg|mp3|wav)$/,
                use: 'file-loader'
            }
        ]
    }
}

生产环境: 

// webpack.prod.js

module.exports = merge(webpackCommonConf,  {
  // ...
  module: {
    rules: [
      // ...
      // 图片 -- 考虑 base64 编码的情况
      {
        test: /\.(jpg|jpeg|png|gif)$/,
        use: {
          loader: 'url-loader',
          options: {
            // 小于 5kb 的图片用 base64 格式产出
            limit: 5 * 1024,
            // 否则,依然沿用 file-loader 的形式,产出 url 格式
            fallback: {
              loader: 'file-loader'
            },
            // 打包到 /static/video 目录下
            outputPath: '/static/img/'
          }
        }
      },
      // 视频,跟上面的图片也是一样的道理
      {
        test: /\.(mp4|ogg|mp3|wav)$/,
        use: {
          loader: 'url-loader',
          options: {
            // 小于 5kb 的视频 用 base64 格式产出
            limit: 5 * 1024,
            // 否则,依然沿用 file-loader 的形式,产出 url 格式
            fallback: {
              loader: 'file-loader'
            },
            // 打包到 /static/video 目录下
            outputPath: '/static/video/'
          }
        }
      }
    ]
  }
})

       为什么?是因为在开发环境下,在本地环境下,不需要把项目打包压缩的特别小,直接引入图片这样打包速度快,利于开发;而在生产环境下,项目越小加载越快,用户体验越好。所以这块针对静态资源的配置可以分别对生产和开发环境进行配置, webpack.common.js  文件里就可以不对静态资源进行处理了。

创建 html 文件

如何让打包的 js 文件自动地插入到 html 模板中呢?

第一步:安装依赖 - html-webpack-plugin

npm install html-webpack-plugin -D

第二步:修改  webpack.common.js  配置

// ...
const HtmlWebpackPlugin = require('html-webpack-plugin')

module.exports = {
  // ...
  module: {
    // ...
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: path.join(srcPath, 'index.html'),
      filename: 'index.html',
      title: 'Web App'
    })
  ]
}

注意:配置动态网页标题时,需将模板中的 标签里的内容改成<%= htmlWebpackPlugin.option.title %></p> <h3 id="%E5%BC%80%E5%8F%91%E6%9C%8D%E5%8A%A1%E5%99%A8">开发服务器</h3> <p>每次打包后都需要手动的点击生成的 <span style="color:#ed7976;"><span style="background-color:#fbd4d0;"> index.html </span></span> 看效果,其实可以直接配置 <span style="color:#ed7976;"><span style="background-color:#fbd4d0;"> webpack </span></span> ,将打包后的文件自动在浏览器打开。这个配置因为是在开发环境下使用,所以可以直接配置在  <span style="color:#ed7976;"><span style="background-color:#fbd4d0;"> webpack.dev.js </span></span> 文件中</p> <p>第一步:安装依赖 - webpack-dev-server</p> <pre><code>npm install webpack-dev-server -D</code></pre> <p>第二步:修改 <span style="color:#ed7976;"><span style="background-color:#fbd4d0;"> webpack.dev.js </span></span> 配置</p> <pre><code class="language-javascript">// webpack.dev.js module.exports = { // ... // 配置 dev-server, 就会帮我们开启自动刷新这个功能 // 自动刷新与热更新的不同:自动刷新保存修改后,整个页 // 面会自动刷新来加载最新的改动,状态会丢失,而热更新 // 是新代码生效,网页不刷新,状态不丢失,有优有劣,酌 // 情使用。 devServer: { port: 3000, // 默认开启本地服务的端口号 progress: true, // 显示打包的进度条 open: true, // 自动打开浏览器 contentBase: distPath, // 根目录 compress: true, // 启动 gzip 压缩 // 设置代理 —— 如果有需要的话 proxy: { // 将本地的 /api/xxx 代理到 localhost:3000/api/xxx '/api': 'http://localhost:3000', // 将本地的 /api2/xxx 代理到 localhost:3000/xxx '/api2': { target: 'http://localhost:3000', '^api/': '' } } } }</code></pre> <h3 id="%E6%B8%85%E9%99%A4%E6%89%93%E5%8C%85%E6%96%87%E4%BB%B6">清除打包文件</h3> <p>每次打包如果文件改动的话,都会生成新的打包文件,那之前的文件也就没必要存在了,尤其是在打包文件加了 <span style="color:#ed7976;"><span style="background-color:#fbd4d0;"> hash </span></span> 的情况下,所以我们可以使用此插件帮助我们每次打包前先清除以前的打包文件,即先清空我们的 <span style="color:#ed7976;"><span style="background-color:#fbd4d0;"> dist </span></span> 目录。配置在生产环境下,即 <span style="color:#ed7976;"><span style="background-color:#fbd4d0;"> webpack.prod.js </span></span></p> <p>第一步:安装依赖 - clean-webpack-plugin</p> <pre><code>npm install clean-webpack-plugin -D</code></pre> <p>第二步:修改 <span style="color:#ed7976;"><span style="background-color:#fbd4d0;"> webpack.prod.js </span></span> 配置</p> <pre><code class="language-javascript">// webpack.prod.js // ... const { CleanWebpackPlugin } = require('clean-webpack-plugin') module.exports = { // ... plugins: [ new ClearWebpackPlugin() // 会默认清空 output.path 文件夹,即 distPath 文件夹 ] }</code></pre> <h3 id="%E5%A4%9A%E7%8E%AF%E5%A2%83%E6%89%93%E5%8C%85">多环境打包</h3> <p>因为我们将配置文件抽离成了三个文件,有抽离出来的两个环境下都需要的公共的配置  <span style="color:#ed7976;"><span style="background-color:#fbd4d0;"> webpack.common.js </span></span>,也有针对开发环境的特殊配置 webpack.dev.js,还有生产环境下的特殊配置 <span style="color:#ed7976;"><span style="background-color:#fbd4d0;"> webpack.prod.js </span></span>,那我们可以执行不同的命令来达到在生产环境还是开发环境下打包的效果。</p> <p>第一步:配置 <span style="color:#ed7976;"><span style="background-color:#fbd4d0;"> package.json </span></span></p> <pre><code class="language-javascript">// ... "scripts": { // ... "dev": "webpack serve --config webpack.dev.js", "build": "webpack --config webpack.prod.js" }, // ...</code></pre> <p> 第二步:命令行执行对应环境的命令</p> <p>开发环境运行</p> <pre><code>npm run dev</code></pre> <p><a href="http://img.e-com-net.com/image/info8/77fb03dd0ab64ebbb2a5eba271b64c49.jpg" target="_blank"><img alt="webpack 之 从 0 创建一个 webpack5 的项目_第1张图片" height="308" src="http://img.e-com-net.com/image/info8/77fb03dd0ab64ebbb2a5eba271b64c49.jpg" width="650" style="border:1px solid black;"></a></p> <p>生产环境打包运行</p> <pre><code>npm run build</code></pre> <p><a href="http://img.e-com-net.com/image/info8/72be7049516e43519c420acab25d3c06.jpg" target="_blank"><img alt="webpack 之 从 0 创建一个 webpack5 的项目_第2张图片" height="119" src="http://img.e-com-net.com/image/info8/72be7049516e43519c420acab25d3c06.jpg" width="650" style="border:1px solid black;"></a></p> <p> 看到上图,我们创建一个webpack5项目从开发到编译到打包的过程就结束了,也就是我们的普通项目从0到可以开始开发的过程,之后会继续对 webpack 配置的优化进行一个整理和记录,主要有生产环境和开发环境两种不同环境下的优化:</p> <p>生产环境优化产出代码,使打包出来的产品体积更小,加载依赖更少,加载更快,其中包括 1.如何配置生产环境下的静态资源(本文已经提到了,请翻至【<strong>处理图片等静态资源】</strong>这一小节),2. 生产环境如何抽离、压缩 css 文件,3. 如何根据功能和配置来拆分模块 splitChunks;等等其他优化手段。</p> <p><a href="http://img.e-com-net.com/image/info8/5dc68aee94db42829a9c1908fb876c16.jpg" target="_blank"><img alt="webpack 之 从 0 创建一个 webpack5 的项目_第3张图片" height="353" src="http://img.e-com-net.com/image/info8/5dc68aee94db42829a9c1908fb876c16.jpg" width="650" style="border:1px solid black;"></a></p> <p></p> <p>开发环境优化构建速度,可以使本地开发打包编译速度更快,提高开发效率,优化手段主要有:</p> <p><a href="http://img.e-com-net.com/image/info8/6fb8a15e056d47cc90969764048501c7.jpg" target="_blank"><img alt="webpack 之 从 0 创建一个 webpack5 的项目_第4张图片" height="454" src="http://img.e-com-net.com/image/info8/6fb8a15e056d47cc90969764048501c7.jpg" width="650" style="border:1px solid black;"></a></p> <p>期待自己能整理出这个系列吧。</p> <p></p> <p>本文参考:</p> <p>从零使用 Webpack5 搭建一个完整的 Vue3 的开发环境 - 掘金<br>从0创建一个webpack 5项目 - 掘金</p> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1578031525407047680"></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">你可能感兴趣的:(工具,webpack,前端,javascript)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1833759939974230016.htm" title="基于Java毕业设计新锐台球厅管理系统源码+系统+mysql+lw文档+部署软件" target="_blank">基于Java毕业设计新锐台球厅管理系统源码+系统+mysql+lw文档+部署软件</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%AF%BE%E7%A8%8B%E8%AE%BE%E8%AE%A1/1.htm">课程设计</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a> <div>基于Java毕业设计新锐台球厅管理系统源码+系统+mysql+lw文档+部署软件基于Java毕业设计新锐台球厅管理系统源码+系统+mysql+lw文档+部署软件本源码技术栈:项目架构:B/S架构开发语言:Java语言开发软件:ideaeclipse前端技术:Layui、HTML、CSS、JS、JQuery等技术后端技术:JAVA运行环境:Win10、JDK1.8数据库:MySQL5.7/8.0源码</div> </li> <li><a href="/article/1833755520025063424.htm" title="export default vs module.exports:JavaScript 模块导出的双雄对决" target="_blank">export default vs module.exports:JavaScript 模块导出的双雄对决</a> <span class="text-muted">正小安</span> <a class="tag" taget="_blank" href="/search/vue%E6%9D%82%E8%B0%88/1.htm">vue杂谈</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><a class="tag" taget="_blank" href="/search/ecmascript/1.htm">ecmascript</a> <div>exportdefaultvsmodule.exports:JavaScript模块导出的双雄对决在JavaScript的模块化编程中,exportdefault和module.exports是两种不可或缺的语法,它们分别代表了ES6模块系统(也称为ES2015模块或ES6模块)和CommonJS模块系统的核心导出机制。了解它们之间的区别与联系,对于编写可维护、跨平台兼容的JavaScript代码</div> </li> <li><a href="/article/1833751738327330816.htm" title="监控易监测对象及指标之:全面监控Oracle数据库" target="_blank">监控易监测对象及指标之:全面监控Oracle数据库</a> <span class="text-muted">MXsoft618</span> <a class="tag" taget="_blank" href="/search/%E6%99%BA%E8%83%BD%E8%BF%90%E7%BB%B4%E7%AE%A1%E7%90%86%E5%B9%B3%E5%8F%B0/1.htm">智能运维管理平台</a><a class="tag" taget="_blank" href="/search/%E6%99%BA%E8%83%BD%E8%BF%90%E7%BB%B4%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F/1.htm">智能运维管理系统</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4%E7%AE%A1%E7%90%86%E8%BD%AF%E4%BB%B6/1.htm">运维管理软件</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a> <div>随着企业业务的不断增长和复杂化,Oracle数据库作为关键的业务数据管理系统,其性能和稳定性对于保障业务连续性至关重要。为了确保Oracle数据库的高效运行和稳定性能,对其进行全面监控成为了一项必要的工作。本文将基于监控易工具,对Oracle数据库的监测指标进行解读,并探讨如何通过监控来提升数据库的性能和稳定性。一、连通性监测与响应时间分析数据库连通性是保障业务连续性的基础。监控易工具通过模拟连接</div> </li> <li><a href="/article/1833751739002613760.htm" title="打造高效医院运维团队:一体化监控能力的全方位提升" target="_blank">打造高效医院运维团队:一体化监控能力的全方位提升</a> <span class="text-muted">MXsoft618</span> <a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4%E7%AE%A1%E7%90%86%E8%BD%AF%E4%BB%B6/1.htm">运维管理软件</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4%E8%BD%AF%E4%BB%B6/1.htm">运维软件</a><a class="tag" taget="_blank" href="/search/%E6%99%BA%E8%83%BD%E8%BF%90%E7%BB%B4%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F/1.htm">智能运维管理系统</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a> <div>在数字化时代,医院信息系统的稳定运行至关重要。为了提高医院运维团队的一体化运维监控能力,我们需要从多个方面入手,构建一套全面、高效的运维体系。首先,培训和技能提升是基石。我们应该为运维团队提供定期的技术培训,使他们熟练掌握新监控工具的使用技巧,学习系统故障排查方法和性能优化手段。此外,通过组织技术分享会,团队成员能够及时了解最新的运维技术和行业趋势,保持与时俱进。其次,制定标准化流程和规范对于提升</div> </li> <li><a href="/article/1833750602979569664.htm" title="Python 实时聊天室搭建:发布订阅频道API实战应用" target="_blank">Python 实时聊天室搭建:发布订阅频道API实战应用</a> <span class="text-muted">幂简集成</span> <a class="tag" taget="_blank" href="/search/API%E5%AE%9E%E6%88%98%E6%8C%87%E5%8D%97/1.htm">API实战指南</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/API/1.htm">API</a> <div>大家好!今天我要和大家分享一个超级酷炫的项目——使用Python搭建一个实时聊天室。在这个项目中,我们将深入探索一个强大的工具——发布订阅频道API,它将为我们的聊天室带来实时互动的魔力。在这个信息爆炸的时代,实时通信已经成为我们生活中不可或缺的一部分。无论是社交媒体上的即时消息,还是在线游戏中的实时对战,实时通信技术都在背后默默支撑着我们的每一次互动。今天,我将带你走进Python的世界,一起动</div> </li> <li><a href="/article/1833748838687535104.htm" title="XPER: 揭示预测性能的驱动力" target="_blank">XPER: 揭示预测性能的驱动力</a> <span class="text-muted">AI甲子光年</span> <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/%E7%8E%A9%E6%B8%B8%E6%88%8F/1.htm">玩游戏</a><a class="tag" taget="_blank" href="/search/chatgpt/1.htm">chatgpt</a> <div>敏感AI系统的信任度和可接受性很大程度上取决于用户理解相关模型,或者至少理解其预测结果的能力。为了揭示不透明的AI应用,今天普遍使用了可解释AI(XAI)方法,如事后解释工具(例如SHAP,LIME),而其输出的洞察现在已被广泛理解。除了个别预测之外,我们在本文中展示了如何使用可解释性能(XPER)方法识别任何分类或回归模型的性能指标(例如AUC,R2)的驱动因素。能够识别预测模型在统计或经济性能</div> </li> <li><a href="/article/1833748460088684544.htm" title="5+ 个 AI 真实案例展示如何助力您的内容和营销工作" target="_blank">5+ 个 AI 真实案例展示如何助力您的内容和营销工作</a> <span class="text-muted">AI甲子光年</span> <a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>你是否已经欢迎AI加入你的内容营销团队?由AI驱动的工具和技术可以为你的内容和营销工作提供无价的帮助。但首先,你必须理解其潜力,才能从中受益。行业专家(人类专家)分享了他们在团队中看到的AI潜力以及他们如何在运营中实现这个潜力。请考虑这些机会和如何将AI引入你的运营中的建议。1.利用数据你可能知道如何从GoogleAnalytics和其他工具收集性能数据。然而,访问分散在各个平台或特定功能系统中的</div> </li> <li><a href="/article/1833746695712763904.htm" title="Windows下的TCP UDP网络调试工具-NetAssist以及Linux下的nc网络调试工具_tcp网络调试工具(1)" target="_blank">Windows下的TCP UDP网络调试工具-NetAssist以及Linux下的nc网络调试工具_tcp网络调试工具(1)</a> <span class="text-muted">2401_83947434</span> <a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a> <div>为了做好运维面试路上的助攻手,特整理了上百道【运维技术栈面试题集锦】,让你面试不慌心不跳,高薪offer怀里抱!这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。本份面试集锦涵盖了174道运维工程师面试题128道k8s面试题108道shell脚本面试题200道Linux面试题51道docker面试题35道Je</div> </li> <li><a href="/article/1833745436159078400.htm" title="Linux系统管理及应用软件实施与运维" target="_blank">Linux系统管理及应用软件实施与运维</a> <span class="text-muted">无敌霸王龙</span> <a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><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/centos/1.htm">centos</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a> <div>一、引言随着信息技术的迅猛发展,Linux操作系统在企业和个人用户中的应用越来越广泛。Linux以其开放源代码、稳定可靠、安全性高等特点成为许多用户的首选操作系统。而随着Linux应用范围的不断扩大,对于Linux系统管理及应用软件的实施与运维也越来越受到重视。本文将介绍Linux系统管理的基本概念、常用工具及技术,以及针对不同应用场景下的实施与运维策略。通过对Linux系统管理的深入理解,可以帮</div> </li> <li><a href="/article/1833745178771419136.htm" title="用JavaScript写一个简单的9*9乘法表" target="_blank">用JavaScript写一个简单的9*9乘法表</a> <span class="text-muted">迷雾yx</span> <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>Documentspan{width:80px;padding:5px10px;display:inline-block;/*可以使行内元素表现得像块级元素一样*/text-align:center;/*文本居中*/border:1pxsolidturquoise;margin:2px;/*每个边框之间距离为2px*/border-radius:10px;/*边框圆润*/box-shadow:6p</div> </li> <li><a href="/article/1833744295438413824.htm" title="How can I load the openai api configuration through js in html?" target="_blank">How can I load the openai api configuration through js in html?</a> <span class="text-muted">营赢盈英</span> <a class="tag" taget="_blank" href="/search/AI/1.htm">AI</a><a class="tag" taget="_blank" href="/search/ai/1.htm">ai</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a><a class="tag" taget="_blank" href="/search/openai/1.htm">openai</a> <div>题意:怎样在HTML中通过JavaScript加载OpenAIAPI配置问题背景:Iamtryingtosendarequestthroughjsinmyhtmlsothatopenaianalyzesitandsendsaresponse,butifinthejsIputthefollowing:我正在尝试通过HTML中的JavaScript发送一个请求,以便让OpenAI分析它并发送响应,但如</div> </li> <li><a href="/article/1833742154019729408.htm" title="html知识点总结" target="_blank">html知识点总结</a> <span class="text-muted">软件技术NINI</span> <a class="tag" taget="_blank" href="/search/html%E7%AC%94%E8%AE%B0/1.htm">html笔记</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>HTML(HyperTextMarkupLanguage)总结可以从其定义、基本结构、常用标签以及网页开发工具等多个方面进行阐述。一、HTML定义HTML是一种超文本标记语言,它不是一种编程语言,而是一种用于描述网页内容的标记语言。HTML文档由HTML标签和文本内容组成,这些标签告诉浏览器如何显示页面上的内容。HTML的发展始于1990年,由Web之父TimBerners-Lee发布,并随着互联</div> </li> <li><a href="/article/1833737740848558080.htm" title="Windows和浏览器的命令与快捷键" target="_blank">Windows和浏览器的命令与快捷键</a> <span class="text-muted">伍嘉源</span> <a class="tag" taget="_blank" href="/search/Windows/1.htm">Windows</a><a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a> <div>Windows和浏览器的命令与快捷键一、运行常用命令二、cmd常用命令(cmd的命令是运行的命令的超集)三、Windows快捷键1、Win键2、Ctrl键3、Alt键4、F键四、浏览器快捷键五、关闭Windows防火墙、安全中心和自动更新一、运行常用命令1.基本命令cmd打开命令提示符(cmd命令行控制台)control打开控制面板regedit打开注册表编辑器2.打开系统自带工具mspaint打</div> </li> <li><a href="/article/1833736380501553152.htm" title="逆转录病毒载体简介" target="_blank">逆转录病毒载体简介</a> <span class="text-muted">生物GO</span> <div>随着现代医学的发展,研究者发现有越来越多的疾病与人类基因组的突变或缺失有关。几十年来,人们一直在探索一些疾病在分子水平的治疗,试图通过对患者基因的调控达到治疗某种疾病的目的。目前,多数研究集中在将外源基因插入到基因组的某个位置,以促进或抑制某种特定基因的表达,这就要求有一种可以将外源基因引入机体细胞中的运载工具,而逆转录病毒载体正是迎合了这种需要而产生的。逆转录病毒载体是根据逆转录病毒的特性设计出</div> </li> <li><a href="/article/1833736353074999296.htm" title="webpack 深入浅出分析之style-loader、css-loader、配置sass与less" target="_blank">webpack 深入浅出分析之style-loader、css-loader、配置sass与less</a> <span class="text-muted">城南花开ze</span> <a class="tag" taget="_blank" href="/search/Webpack/1.htm">Webpack</a><a class="tag" taget="_blank" href="/search/Vite/1.htm">Vite</a><a class="tag" taget="_blank" href="/search/Gulp/1.htm">Gulp</a><a class="tag" taget="_blank" href="/search/webpack/1.htm">webpack</a><a class="tag" taget="_blank" href="/search/css-loader/1.htm">css-loader</a><a class="tag" taget="_blank" href="/search/style-loader/1.htm">style-loader</a><a class="tag" taget="_blank" href="/search/%E9%85%8D%E7%BD%AEsass%E4%B8%8Eless/1.htm">配置sass与less</a> <div>一、webpack打包style-loader创建一个空文件夹,通过npminit初始化创建package.json文件,通过npminstallwebpack--save-dev命令下载webpack,通过npminstallstyle-loadercss-loader--save-dev命令下载style-loader和css-loader。创建css文件夹,在里面创建base.css和com</div> </li> <li><a href="/article/1833735596581941248.htm" title="从零开始学python数据分析-从零开始学Python数据分析与挖掘 PDF 扫描版" target="_blank">从零开始学python数据分析-从零开始学Python数据分析与挖掘 PDF 扫描版</a> <span class="text-muted">weixin_37988176</span> <div>给大家带来的一篇关于数据挖掘相关的电子书资源,介绍了关于Python、数据分析、数据挖掘方面的内容,本书是由清华大学出版社出版,格式为PDF,资源大小67.8MB,刘顺祥编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:7.5。内容介绍从零开始学Python数据分析与挖掘本书以Python3版本作为数据分析与挖掘实战的应用工具,从Pyhton的基础语法开始,陆续介绍有关数值计算的Numpy、数</div> </li> <li><a href="/article/1833735470283059200.htm" title="Css-loader安装失败,webpack打包css文件时,确认css-loader和style-loader安装正确,import路径都正确,打包反复报错..." target="_blank">Css-loader安装失败,webpack打包css文件时,确认css-loader和style-loader安装正确,import路径都正确,打包反复报错...</a> <span class="text-muted">Malong Wu</span> <a class="tag" taget="_blank" href="/search/Css-loader%E5%AE%89%E8%A3%85%E5%A4%B1%E8%B4%A5/1.htm">Css-loader安装失败</a> <div>webpack打包css文件时,确认css-loader和style-loader都安装正确,且import路径都正确,打包反复报错:ERRORin./src/assets/styles/test.css1:0Moduleparsefailed:Unexpectedtoken(1:0)Youmayneedanappropriateloadertohandlethisfiletype,current</div> </li> <li><a href="/article/1833733075486470144.htm" title="java计算机毕业设计高校学生资助管理信息系统源码+mysql数据库+系统+lw文档+部署" target="_blank">java计算机毕业设计高校学生资助管理信息系统源码+mysql数据库+系统+lw文档+部署</a> <span class="text-muted">鸿源网络</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>java计算机毕业设计高校学生资助管理信息系统源码+mysql数据库+系统+lw文档+部署java计算机毕业设计高校学生资助管理信息系统源码+mysql数据库+系统+lw文档+部署本源码技术栈:项目架构:B/S架构开发语言:Java语言开发软件:ideaeclipse前端技术:Layui、HTML、CSS、JS、JQuery等技术后端技术:JAVA运行环境:Win10、JDK1.8数据库:MySQ</div> </li> <li><a href="/article/1833731917971812352.htm" title="《赌在技术开发上》不懈努力达至伟大成功" target="_blank">《赌在技术开发上》不懈努力达至伟大成功</a> <span class="text-muted">晋慧绍成</span> <div>我是宁波百事达工具/格雷公司/宁波盛和塾诚敬组,格雷读书会同心队何绍成,这是我每天至少一篇文字的第864篇文字(2021/11/22)《赌在技术开发上》不懈努力达至伟大成功我们愚直地相信技术开发工作有无限可能性。技术开发不是一朝一夕的事,要持续怀抱“不懈努力达至成功”的强烈信念。即使需要花上数年的漫长时间,也要忍受孤独,坚持开发。一边相信无限的可能性,一边坚持脚踏实地,持续努力,坚信这么做,一定可</div> </li> <li><a href="/article/1833731311651614720.htm" title="「漏洞复现」契约锁电子签章平台 add 远程命令执行漏洞" target="_blank">「漏洞复现」契约锁电子签章平台 add 远程命令执行漏洞</a> <span class="text-muted">鲨鱼辣椒丶D</span> <a class="tag" taget="_blank" href="/search/%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0/1.htm">漏洞复现</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a> <div>0x01免责声明请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。工具来自网络,安全性自测,如有侵权请联系删除。本次测试仅供学习使用,如若非法他用,与平台和本文作者无关,需自行负责!!!0x02产品介绍契约锁电子签章平台是上海亘岩网络科技有限公司推出的一套数字签章解决方案。契约锁为中大型组织提供“数</div> </li> <li><a href="/article/1833731059431337984.htm" title="Pixel2刷入原生Google系统并获取ROOT权限" target="_blank">Pixel2刷入原生Google系统并获取ROOT权限</a> <span class="text-muted">Devil丶LY</span> <a class="tag" taget="_blank" href="/search/%E7%A7%BB%E5%8A%A8%E7%AB%AF/1.htm">移动端</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a> <div>一、设备信息机型:pixel2二、预刷系统系统:google原生系统(pixel对应版本为walleye)Android版本:11Magisk版本:23.0(root用)三、刷机工具fastbootadb四、下载网站Google原生系统镜像下载地址TWRP下载地址Magisk下载地址五、刷机文件walleye-rp1a.201005.004.a1-factory-0c23f6cf.zip(goog</div> </li> <li><a href="/article/1833730429274910720.htm" title="Mac快速复制和删除命令" target="_blank">Mac快速复制和删除命令</a> <span class="text-muted">奔跑的呱呱牛</span> <a class="tag" taget="_blank" href="/search/macos/1.htm">macos</a> <div>Mac快速复制和删除命令在macOS中,有几种不同的方法来快速复制和删除文件。以下是最快的命令行工具和方法:1.快速复制文件的命令:rsyncrsync是一个非常高效的工具,专门用于同步和复制文件。它可以利用差异复制(仅复制变化的文件),适合大文件或大量文件的复制任务。语法:rsync-av--progress[source][destination]-a:保留文件权限、符号链接等元数据。-v:显</div> </li> <li><a href="/article/1833730429727895552.htm" title="分享JavaScript中直接调用CSS中的类名" target="_blank">分享JavaScript中直接调用CSS中的类名</a> <span class="text-muted">奔跑的呱呱牛</span> <a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>分享JavaScript中直接调用CSS中的类名在现代的JavaScript框架(如React、Vue)中,使用CSS模块(CSSModules)是一种非常流行的方式。.module.css文件扩展名代表的是CSS模块,它与普通的CSS文件不同,能够解决样式全局污染的问题,并且实现更好的样式隔离。为什么要使用.module.css作用域隔离:传统的CSS文件中的类名是全局的,这意味着如果多个组件或</div> </li> <li><a href="/article/1833726270249201664.htm" title="App Cleaner & Uninstaller Pro中文---彻底卸载Mac应用的利器" target="_blank">App Cleaner & Uninstaller Pro中文---彻底卸载Mac应用的利器</a> <span class="text-muted">lx53mac</span> <a class="tag" taget="_blank" href="/search/Mac%E8%BD%AF%E4%BB%B6/1.htm">Mac软件</a><a class="tag" taget="_blank" href="/search/macos/1.htm">macos</a> <div>AppCleaner&UninstallerPro是一款专为Mac用户设计的强大应用程序清理和卸载工具。它以其全面、彻底和高效的清理能力,受到了广大用户的青睐。该软件不仅能帮助用户快速卸载不再需要的应用程序,更能彻底删除相关文件、插件和残留数据,确保Mac磁盘空间得到高效释放。AppCleaner&UninstallerPro的特色功能包括其强大的搜索能力,能快速定位并清除与应用程序相关的所有文件</div> </li> <li><a href="/article/1833722103464030208.htm" title="基于JAVA高校毕业就业管理系统计算机毕业设计源码+数据库+lw文档+系统+部署" target="_blank">基于JAVA高校毕业就业管理系统计算机毕业设计源码+数据库+lw文档+系统+部署</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/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>基于JAVA高校毕业就业管理系统计算机毕业设计源码+数据库+lw文档+系统+部署基于JAVA高校毕业就业管理系统计算机毕业设计源码+数据库+lw文档+系统+部署本源码技术栈:项目架构:B/S架构开发语言:Java语言开发软件:ideaeclipse前端技术:Layui、HTML、CSS、JS、JQuery等技术后端技术:JAVA运行环境:Win10、JDK1.8数据库:MySQL5.7/8.0源码</div> </li> <li><a href="/article/1833717564837031936.htm" title="7个特色创意营销点子" target="_blank">7个特色创意营销点子</a> <span class="text-muted">科技旋涡</span> <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/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a> <div>营销是一场注意力的游戏。就是利用你手中的工具让你的品牌吸引观众的眼球。当然,营销是复杂且多层次的,但有时候一个简单的想法可以开启令人兴奋的新可能性。比如:你的营销工具清单可能比你想象的要长。仅因为你以前从未使用过某个营销渠道,并不意味着你将来不能通过它取得优异的成果。你可以在所有标准类型的内容——博客文章、白皮书、短视频、社交媒体营销帖子、电子邮件营销——中添加新的和新颖的产品。通过尝试不同的内容</div> </li> <li><a href="/article/1833717289321590784.htm" title="头条挂机怎么赚钱的?头条号脚本挂机赚钱方法" target="_blank">头条挂机怎么赚钱的?头条号脚本挂机赚钱方法</a> <span class="text-muted">高省APP大九</span> <div>今日头条作为国内知名的自媒体平台,为用户提供了多种赚钱变现的形式,其中就包括做任务、刷阅读等等。有些用户为了获得这方面的收入,甚至开发了对应的脚本工具,通过挂机的方法来赚取收益,这种脚本挂机的形式可以赚多少钱呢?大家好,我是高省APP联合创始人蓓蓓导师,高省APP是2021年推出的电商导购平台,0投资,0风险、高省APP佣金更高,模式更好,终端用户不流失。【高省】是一个可省钱佣金高,能赚钱有收益的</div> </li> <li><a href="/article/1833715422164250624.htm" title="2024年云曦网络安全实验室2024春季学期开学考复现Writeup" target="_blank">2024年云曦网络安全实验室2024春季学期开学考复现Writeup</a> <span class="text-muted">2301_82257383</span> <a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a> <div>构造的payloa为http://172.16.17.201:50183/Gentle_sister.php/?my_parameter[]=1可以直接访问也可以Hackbar工具传参。通过使用my_parameter[]=1,相当于是告诉服务器,我们在传递的是一个包含1的数组而非数字或字符串,在这种情况下,$_GET[‘my_parameter’]得到的将是一个数组,而不是一个单一的值。原本脚本</div> </li> <li><a href="/article/1833712461266644992.htm" title="简单聊聊不用链接可以微信改单吗" target="_blank">简单聊聊不用链接可以微信改单吗</a> <span class="text-muted">潮品会</span> <div>近年来,随着社交媒体和电子商务的蓬勃发展,人们的生活方式也发生了翻天覆地的变化。作为全球最大的即时通讯工具之一,微信在这个变革中扮演着举足轻重的角色。然而,尽管微信功能强大,但它也存在一些不完善的地方,其中之一就是无法自主撤销或更改发送出去的聊天记录、转账信息等账单。微信:61522808(下单赠送精美礼品)微信改单系统又叫商品管理系统。微信改单系统是微信应用程序中的系统设置,该系统设置叫做商品管</div> </li> <li><a href="/article/1833711695709696000.htm" title="【免费培训 · 时间调整】脑电统计分析专题班(直播:2023.7.12)" target="_blank">【免费培训 · 时间调整】脑电统计分析专题班(直播:2023.7.12)</a> <span class="text-muted">茗创科技</span> <div>课程背景统计分析通过对数据进行定量和定性分析,使繁杂的数据变得直观且形象。它作为一门实践性很强的课程,对各学科领域的发展起着非常重要的作用,特别是作为一种认识心理现象数量特征的重要工具受到了广大心理学工作者的重视。统计分析有助于建立问题和数据之间的关系,从而更好地了解和发现事物的内在规律。但如果大家在科研数据分析过程中只是记住操作步骤,缺乏对各种统计分析方法的原理、应用条件和检验结果的理解,不能很</div> </li> <li><a href="/article/41.htm" title="html页面js获取参数值" target="_blank">html页面js获取参数值</a> <span class="text-muted">0624chenhong</span> <a class="tag" taget="_blank" href="/search/html/1.htm">html</a> <div>1.js获取参数值js function GetQueryString(name) {      var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");      var r = windo</div> </li> <li><a href="/article/168.htm" title="MongoDB 在多线程高并发下的问题" target="_blank">MongoDB 在多线程高并发下的问题</a> <span class="text-muted">BigCat2013</span> <a class="tag" taget="_blank" href="/search/mongodb/1.htm">mongodb</a><a class="tag" taget="_blank" href="/search/DB/1.htm">DB</a><a class="tag" taget="_blank" href="/search/%E9%AB%98%E5%B9%B6%E5%8F%91/1.htm">高并发</a><a class="tag" taget="_blank" href="/search/%E9%87%8D%E5%A4%8D%E6%95%B0%E6%8D%AE/1.htm">重复数据</a> <div>最近项目用到 MongoDB , 主要是一些读取数据及改状态位的操作. 因为是结合了最近流行的 Storm进行大数据的分析处理,并将分析结果插入Vertica数据库,所以在多线程高并发的情境下, 会发现 Vertica 数据库中有部分重复的数据. 这到底是什么原因导致的呢?笔者开始也是一筹莫 展,重复去看 MongoDB 的 API , 终于有了新发现 : com.mongodb.DB 这个类有</div> </li> <li><a href="/article/295.htm" title="c++ 用类模版实现链表(c++语言程序设计第四版示例代码)" target="_blank">c++ 用类模版实现链表(c++语言程序设计第四版示例代码)</a> <span class="text-muted">CrazyMizzz</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/C%2B%2B/1.htm">C++</a> <div>#include<iostream> #include<cassert> using namespace std; template<class T> class Node { private: Node<T> * next; public: T data; </div> </li> <li><a href="/article/422.htm" title="最近情况" target="_blank">最近情况</a> <span class="text-muted">麦田的设计者</span> <a class="tag" taget="_blank" href="/search/%E6%84%9F%E6%85%A8/1.htm">感慨</a><a class="tag" taget="_blank" href="/search/%E8%80%83%E8%AF%95/1.htm">考试</a><a class="tag" taget="_blank" href="/search/%E7%94%9F%E6%B4%BB/1.htm">生活</a> <div>   在五月黄梅天的岁月里,一年两次的软考又要开始了。到目前为止,我已经考了多达三次的软考,最后的结果就是通过了初级考试(程序员)。人啊,就是不满足,考了初级就希望考中级,于是,这学期我就报考了中级,明天就要考试。感觉机会不大,期待奇迹发生吧。这个学期忙于练车,写项目,反正最后是一团糟。后天还要考试科目二。这个星期真的是很艰难的一周,希望能快点度过。   </div> </li> <li><a href="/article/549.htm" title="linux系统中用pkill踢出在线登录用户" target="_blank">linux系统中用pkill踢出在线登录用户</a> <span class="text-muted">被触发</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>由于linux服务器允许多用户登录,公司很多人知道密码,工作造成一定的障碍所以需要有时踢出指定的用户 1/#who   查出当前有那些终端登录(用 w 命令更详细) # who root     pts/0        2010-10-28 09:36 (192</div> </li> <li><a href="/article/676.htm" title="仿QQ聊天第二版" target="_blank">仿QQ聊天第二版</a> <span class="text-muted">肆无忌惮_</span> <a class="tag" taget="_blank" href="/search/qq/1.htm">qq</a> <div>在第一版之上的改进内容:  第一版链接: http://479001499.iteye.com/admin/blogs/2100893   用map存起来号码对应的聊天窗口对象,解决私聊的时候所有消息发到一个窗口的问题. 增加ViewInfo类,这个是信息预览的窗口,如果是自己的信息,则可以进行编辑.   信息修改后上传至服务器再告诉所有用户,自己的窗口</div> </li> <li><a href="/article/803.htm" title="java读取配置文件" target="_blank">java读取配置文件</a> <span class="text-muted">知了ing</span> <div>1,java读取.properties配置文件 InputStream in; try { in = test.class.getClassLoader().getResourceAsStream("config/ipnetOracle.properties");//配置文件的路径 Properties p = new Properties()</div> </li> <li><a href="/article/930.htm" title="__attribute__ 你知多少?" target="_blank">__attribute__ 你知多少?</a> <span class="text-muted">矮蛋蛋</span> <a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a><a class="tag" taget="_blank" href="/search/gcc/1.htm">gcc</a> <div>原文地址: http://www.cnblogs.com/astwish/p/3460618.html GNU C 的一大特色就是__attribute__ 机制。__attribute__ 可以设置函数属性(Function Attribute )、变量属性(Variable Attribute )和类型属性(Type Attribute )。 __attribute__ 书写特征是:</div> </li> <li><a href="/article/1057.htm" title="jsoup使用笔记" target="_blank">jsoup使用笔记</a> <span class="text-muted">alleni123</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/JSoup/1.htm">JSoup</a> <div><dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.7.3</version> </dependency> 2014/08/28 今天遇到这种形式, </div> </li> <li><a href="/article/1184.htm" title="JAVA中的集合 Collectio 和Map的简单使用及方法" target="_blank">JAVA中的集合 Collectio 和Map的简单使用及方法</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/list/1.htm">list</a><a class="tag" taget="_blank" href="/search/map/1.htm">map</a><a class="tag" taget="_blank" href="/search/set/1.htm">set</a> <div>         List ,set ,map的使用方法和区别 java容器类类库的用途是保存对象,并将其分为两个概念:     Collection集合:一个独立的序列,这些序列都服从一条或多条规则;List必须按顺序保存元素  ,set不能重复元素;Queue按照排队规则来确定对象产生的顺序(通常与他们被插入的</div> </li> <li><a href="/article/1311.htm" title="杀LINUX的JOB进程" target="_blank">杀LINUX的JOB进程</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/unix/1.htm">unix</a> <div>今天发现数据库一个JOB一直在执行,都执行了好几个小时还在执行,所以想办法给删除掉   系统环境:    ORACLE 10G    Linux操作系统   操作步骤如下: 第一步.查询出来那个job在运行,找个对应的SID字段 select * from dba_jobs_running--找到job对应的sid &n</div> </li> <li><a href="/article/1438.htm" title="Spring AOP详解" target="_blank">Spring AOP详解</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/AOP/1.htm">AOP</a> <div>        最近项目中遇到了以下几点需求,仔细思考之后,觉得采用AOP来解决。一方面是为了以更加灵活的方式来解决问题,另一方面是借此机会深入学习Spring AOP相关的内容。例如,以下需求不用AOP肯定也能解决,至于是否牵强附会,仁者见仁智者见智。 1.对部分函数的调用进行日志记录,用于观察特定问题在运行过程中的函数调用</div> </li> <li><a href="/article/1565.htm" title="[Gson六]Gson类型适配器(TypeAdapter)" target="_blank">[Gson六]Gson类型适配器(TypeAdapter)</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/Adapter/1.htm">Adapter</a> <div>TypeAdapter的使用动机  Gson在序列化和反序列化时,默认情况下,是按照POJO类的字段属性名和JSON串键进行一一映射匹配,然后把JSON串的键对应的值转换成POJO相同字段对应的值,反之亦然,在这个过程中有一个JSON串Key对应的Value和对象之间如何转换(序列化/反序列化)的问题。   以Date为例,在序列化和反序列化时,Gson默认使用java.</div> </li> <li><a href="/article/1692.htm" title="【spark八十七】给定Driver Program, 如何判断哪些代码在Driver运行,哪些代码在Worker上执行" target="_blank">【spark八十七】给定Driver Program, 如何判断哪些代码在Driver运行,哪些代码在Worker上执行</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/driver/1.htm">driver</a> <div>Driver Program是用户编写的提交给Spark集群执行的application,它包含两部分 作为驱动: Driver与Master、Worker协作完成application进程的启动、DAG划分、计算任务封装、计算任务分发到各个计算节点(Worker)、计算资源的分配等。 计算逻辑本身,当计算任务在Worker执行时,执行计算逻辑完成application的计算任务 </div> </li> <li><a href="/article/1819.htm" title="nginx 经验总结" target="_blank">nginx 经验总结</a> <span class="text-muted">ronin47</span> <a class="tag" taget="_blank" href="/search/nginx+%E6%80%BB%E7%BB%93/1.htm">nginx 总结</a> <div>   深感nginx的强大,只学了皮毛,把学下的记录。    获取Header 信息,一般是以$http_XX(XX是小写)            获取body,通过接口,再展开,根据K取V    获取uri,以$arg_XX      &n</div> </li> <li><a href="/article/1946.htm" title="轩辕互动-1.求三个整数中第二大的数2.整型数组的平衡点" target="_blank">轩辕互动-1.求三个整数中第二大的数2.整型数组的平衡点</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E7%BB%84/1.htm">数组</a> <div> import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class ExoWeb { public static void main(String[] args) { ExoWeb ew=new ExoWeb(); System.out.pri</div> </li> <li><a href="/article/2073.htm" title="Netty源码学习-Java-NIO-Reactor" target="_blank">Netty源码学习-Java-NIO-Reactor</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/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a><a class="tag" taget="_blank" href="/search/netty/1.htm">netty</a> <div>Netty里面采用了NIO-based Reactor Pattern 了解这个模式对学习Netty非常有帮助 参考以下两篇文章: http://jeewanthad.blogspot.com/2013/02/reactor-pattern-explained-part-1.html http://gee.cs.oswego.edu/dl/cpjslides/nio.pdf </div> </li> <li><a href="/article/2200.htm" title="AOP通俗理解" target="_blank">AOP通俗理解</a> <span class="text-muted">cngolon</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/AOP/1.htm">AOP</a> <div>1.我所知道的aop     初看aop,上来就是一大堆术语,而且还有个拉风的名字,面向切面编程,都说是OOP的一种有益补充等等。一下子让你不知所措,心想着:怪不得很多人都和 我说aop多难多难。当我看进去以后,我才发现:它就是一些java基础上的朴实无华的应用,包括ioc,包括许许多多这样的名词,都是万变不离其宗而 已。 2.为什么用aop&nb</div> </li> <li><a href="/article/2327.htm" title="cursor variable 实例" target="_blank">cursor variable 实例</a> <span class="text-muted">ctrain</span> <a class="tag" taget="_blank" href="/search/variable/1.htm">variable</a> <div> create or replace procedure proc_test01 as type emp_row is record( empno emp.empno%type, ename emp.ename%type, job emp.job%type, mgr emp.mgr%type, hiberdate emp.hiredate%type, sal emp.sal%t</div> </li> <li><a href="/article/2454.htm" title="shell报bash: service: command not found解决方法" target="_blank">shell报bash: service: command not found解决方法</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/shell/1.htm">shell</a><a class="tag" taget="_blank" href="/search/service/1.htm">service</a><a class="tag" taget="_blank" href="/search/jps/1.htm">jps</a> <div>今天在执行一个脚本时,本来是想在脚本中启动hdfs和hive等程序,可以在执行到service hive-server start等启动服务的命令时会报错,最终解决方法记录一下:   脚本报错如下: ./olap_quick_intall.sh: line 57: service: command not found ./olap_quick_intall.sh: line 59</div> </li> <li><a href="/article/2581.htm" title="40个迹象表明你还是PHP菜鸟" target="_blank">40个迹象表明你还是PHP菜鸟</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><a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1.htm">正则表达式</a><a class="tag" taget="_blank" href="/search/oop/1.htm">oop</a> <div>你是PHP菜鸟,如果你:1. 不会利用如phpDoc 这样的工具来恰当地注释你的代码2. 对优秀的集成开发环境如Zend Studio 或Eclipse PDT 视而不见3. 从未用过任何形式的版本控制系统,如Subclipse4. 不采用某种编码与命名标准 ,以及通用约定,不能在项目开发周期里贯彻落实5. 不使用统一开发方式6. 不转换(或)也不验证某些输入或SQL查询串(译注:参考PHP相关函</div> </li> <li><a href="/article/2708.htm" title="Android逐帧动画的实现" target="_blank">Android逐帧动画的实现</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a> <div>一、代码实现: private ImageView iv; private AnimationDrawable ad; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout</div> </li> <li><a href="/article/2835.htm" title="java远程调用linux的命令或者脚本" target="_blank">java远程调用linux的命令或者脚本</a> <span class="text-muted">eksliang</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/ganymed-ssh2/1.htm">ganymed-ssh2</a> <div>转载请出自出处: http://eksliang.iteye.com/blog/2105862        Java通过SSH2协议执行远程Shell脚本(ganymed-ssh2-build210.jar)   使用步骤如下: 1.导包 官网下载: http://www.ganymed.ethz.ch/ssh2/ ma</div> </li> <li><a href="/article/2962.htm" title="adb端口被占用问题" target="_blank">adb端口被占用问题</a> <span class="text-muted">gqdy365</span> <a class="tag" taget="_blank" href="/search/adb/1.htm">adb</a> <div>最近重新安装的电脑,配置了新环境,老是出现: adb server is out of date. killing... ADB server didn't ACK * failed to start daemon * 百度了一下,说是端口被占用,我开个eclipse,然后打开cmd,就提示这个,很烦人。 一个比较彻底的解决办法就是修改</div> </li> <li><a href="/article/3089.htm" title="ASP.NET使用FileUpload上传文件" target="_blank">ASP.NET使用FileUpload上传文件</a> <span class="text-muted">hvt</span> <a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a><a class="tag" taget="_blank" href="/search/C%23/1.htm">C#</a><a class="tag" taget="_blank" href="/search/hovertree/1.htm">hovertree</a><a class="tag" taget="_blank" href="/search/asp.net/1.htm">asp.net</a><a class="tag" taget="_blank" href="/search/webform/1.htm">webform</a> <div>前台代码: <asp:FileUpload ID="fuKeleyi" runat="server" /> <asp:Button ID="BtnUp" runat="server" onclick="BtnUp_Click" Text="上 传" /></div> </li> <li><a href="/article/3216.htm" title="代码之谜(四)- 浮点数(从惊讶到思考)" target="_blank">代码之谜(四)- 浮点数(从惊讶到思考)</a> <span class="text-muted">justjavac</span> <a class="tag" taget="_blank" href="/search/%E6%B5%AE%E7%82%B9%E6%95%B0/1.htm">浮点数</a><a class="tag" taget="_blank" href="/search/%E7%B2%BE%E5%BA%A6/1.htm">精度</a><a class="tag" taget="_blank" href="/search/%E4%BB%A3%E7%A0%81%E4%B9%8B%E8%B0%9C/1.htm">代码之谜</a><a class="tag" taget="_blank" href="/search/IEEE/1.htm">IEEE</a> <div>在『代码之谜』系列的前几篇文章中,很多次出现了浮点数。 浮点数在很多编程语言中被称为简单数据类型,其实,浮点数比起那些复杂数据类型(比如字符串)来说, 一点都不简单。 单单是说明 IEEE浮点数 就可以写一本书了,我将用几篇博文来简单的说说我所理解的浮点数,算是抛砖引玉吧。 一次面试 记得多年前我招聘 Java 程序员时的一次关于浮点数、二分法、编码的面试, 多年以后,他已经称为了一名很出色的</div> </li> <li><a href="/article/3343.htm" title="数据结构随记_1" target="_blank">数据结构随记_1</a> <span class="text-muted">lx.asymmetric</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/%E7%AC%94%E8%AE%B0/1.htm">笔记</a> <div>第一章   1.数据结构包括数据的 逻辑结构、数据的物理/存储结构和数据的逻辑关系这三个方面的内容。 2.数据的存储结构可用四种基本的存储方法表示,它们分别是 顺序存储、链式存储 、索引存储 和 散列存储。 3.数据运算最常用的有五种,分别是  查找/检索、排序、插入、删除、修改。 4.算法主要有以下五个特性:  输入、输出、可行性、确定性和有穷性。 5.算法分析的</div> </li> <li><a href="/article/3470.htm" title="linux的会话和进程组" target="_blank">linux的会话和进程组</a> <span class="text-muted">网络接口</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>会话: 一个或多个进程组。起于用户登录,终止于用户退出。此期间所有进程都属于这个会话期。会话首进程:调用setsid创建会话的进程1.规定组长进程不能调用setsid,因为调用setsid后,调用进程会成为新的进程组的组长进程.如何保证? 先调用fork,然后终止父进程,此时由于子进程的进程组ID为父进程的进程组ID,而子进程的ID是重新分配的,所以保证子进程不会是进程组长,从而子进程可以调用se</div> </li> <li><a href="/article/3597.htm" title="二维数组 元素的连续求解" target="_blank">二维数组 元素的连续求解</a> <span class="text-muted">1140566087</span> <a class="tag" taget="_blank" href="/search/%E4%BA%8C%E7%BB%B4%E6%95%B0%E7%BB%84/1.htm">二维数组</a><a class="tag" taget="_blank" href="/search/ACM/1.htm">ACM</a> <div>import java.util.HashMap; public class Title { public static void main(String[] args){ f(); } // 二位数组的应用 //12、二维数组中,哪一行或哪一列的连续存放的0的个数最多,是几个0。注意,是“连续”。 public static void f(){ </div> </li> <li><a href="/article/3724.htm" title="也谈什么时候Java比C++快" target="_blank">也谈什么时候Java比C++快</a> <span class="text-muted">windshome</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a> <div>  刚打开iteye就看到这个标题“Java什么时候比C++快”,觉得很好笑。   你要比,就比同等水平的基础上的相比,笨蛋写得C代码和C++代码,去和高手写的Java代码比效率,有什么意义呢?   我是写密码算法的,深刻知道算法C和C++实现和Java实现之间的效率差,甚至也比对过C代码和汇编代码的效率差,计算机是个死的东西,再怎么优化,Java也就是和C</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>