前端经典【面试题】持续更新HTML、CSS、JS、VUE、FLUTTER、性能优化等

news2024/12/24 0:27:32

HTML/CSS 面试题

  1. 什么是语义化 HTML?

    1. 说明语义化 HTML 使用 HTML 标签来描述内容的含义,而不仅仅是其外观。使用语义化标签可以提高可读性和可访问性,并对 SEO 友好。
    2. 示例
      <header>
          <h1>网站标题</h1>
      </header>
      <nav>
          <ul>
              <li><a href="#home">首页</a></li>
              <li><a href="#about">关于</a></li>
          </ul>
      </nav>
      <article>
          <h2>文章标题</h2>
          <p>文章内容...</p>
      </article>
      <footer>
          <p>版权信息</p>
      </footer>
      
  2. 盒子模型是什么?

    1. 说明CSS 盒子模型描述了每个元素的布局,包括内容、内边距(padding)、边框(border)和外边距(margin)。理解盒子模型对布局和样式设计至关重要。
    2. 示例
      .box {
          width: 200px; /* 内容宽度 */
          padding: 20px; /* 内边距 */
          border: 5px solid black; /* 边框 */
          margin: 15px; /* 外边距 */
      }
      
  3. 如何创建响应式设计?

    1. 说明响应式设计使网页在不同设备上良好展示,通常使用媒体查询和流式布局。通过 CSS 适配不同屏幕尺寸。
    2. 示例
      /* 默认样式 */
      .container {
          display: flex;
          flex-direction: row;
      }
      
      /* 媒体查询 */
      @media (max-width: 600px) {
          .container {
              flex-direction: column; /* 在小屏幕上改为列方向 */
          }
      }
      
  4. CSS 选择器的优先级是如何计算的?

    1. 说明CSS 选择器的优先级影响样式的应用。优先级从高到低为:内联样式 > ID 选择器 > 类选择器和属性选择器 > 标签选择器。
    2. 示例
      <style>
          /* 标签选择器 */
          p {
              color: blue;
          }
      
          /* 类选择器 */
          .important {
              color: red;
          }
      
          /* ID 选择器 */
          #unique {
              color: green;
          }
      </style>
      
      <p id="unique" class="important">这段文本是绿色的。</p>
      
  5. 什么是 Flexbox 和 Grid,主要区别是什么?

    • 说明Flexbox 是用于一维布局(横向或纵向)的 CSS 布局模型,适合于处理单行或单列元素的对齐;Grid 是用于二维布局(行和列)的 CSS 布局模型,适合于更复杂的布局。
    • 示例(Flexbox)
      .flex-container {
          display: flex;
          justify-content: space-between; /* 水平对齐 */
      }
      
    • 示例(Grid)
      .grid-container {
          display: grid;
          grid-template-columns: repeat(3, 1fr); /* 三列布局 */
      }
      
  6. 什么是 CSS 预处理器?为什么使用它?

    • 说明CSS 预处理器(如 Sass、LESS)扩展了 CSS 的功能,支持变量、嵌套规则、混入等,使 CSS 代码更具可维护性和复用性。
    • 示例(使用 Sass)
      $primary-color: blue;
      
      .button {
          background-color: $primary-color;
          &:hover {
              background-color: darken($primary-color, 10%);
          }
      }
      
  7. CSS 动画和过渡的区别是什么?

    • 说明CSS 过渡是元素在状态变化时的平滑过渡,通常涉及两个状态的变化;CSS 动画允许在多帧之间定义关键帧,创建更复杂的动画效果。
    • 示例(过渡)
      .box {
          width: 100px;
          height: 100px;
          transition: background-color 0.5s;
      }
      
      .box:hover {
          background-color: red; /* 悬停时改变背景色 */
      }
      
    • 示例(动画)
      @keyframes example {
          from {background-color: red;}
          to {background-color: yellow;}
      }
      
      .box {
          width: 100px;
          height: 100px;
          animation: example 2s infinite; /* 持续循环动画 */
      }
      
  8. 如何使用媒体查询实现响应式布局?

    • 说明媒体查询允许根据不同设备的特性(如屏幕宽度)应用不同的样式。
    • 示例
      @media (max-width: 768px) {
          .container {
              flex-direction: column; /* 小屏幕时使用列布局 */
          }
      }
      
  9. 如何优化网页的加载速度?

    • 说明可以通过减少 HTTP 请求、压缩图片、使用 CDN、最小化 CSS 和 JavaScript 文件等手段提升网页性能。
    • 示例
      <link rel="stylesheet" href="styles.min.css"> <!-- 使用压缩后的 CSS -->
      
  10.   DOCTYPE 的作用是什么?

    • 说明DOCTYPE 声明定义了文档类型,告诉浏览器使用哪种 HTML 或 XHTML 规范来渲染页面。它有助于确保页面在标准模式下呈现,而不是怪异模式。
    • 示例 
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <h1>Hello, World!</h1>
    </body>
    </html>
    

JavaScript 面试题

  1. JavaScript 的基本数据类型有哪些?

    • 说明JavaScript 中有七种基本数据类型:undefinednullbooleannumberstringsymbol(ES6 引入)和 bigint(ES11 引入)。
    • 示例
      let num = 10;         // number
      let str = "Hello";    // string
      let isTrue = true;    // boolean
      let nothing = null;    // null
      let notDefined;        // undefined
      let sym = Symbol();    // symbol
      let bigInt = BigInt(123); // bigint
      
  2. 什么是闭包?

    • 说明闭包是指一个函数能够访问其外部作用域的变量,即使外部函数已经返回。闭包可以用来创建私有变量。
    • 示例
      function outer() {
          let count = 0;
          return function inner() {
              count++;
              console.log(count);
          };
      }
      const increment = outer();
      increment(); // 1
      increment(); // 2
      
  3. 解释原型链的概念。

    • 说明JavaScript 中的对象通过原型链继承属性和方法。每个对象都有一个 __proto__ 属性,指向其构造函数的原型。
    • 示例
      function Person(name) {
          this.name = name;
      }
      Person.prototype.greet = function() {
          console.log(`Hello, my name is ${this.name}`);
      };
      
      const john = new Person('John');
      john.greet(); // Hello, my name is John
      
  4. JavaScript 中的 this 是什么?

    • 说明this 是一个动态绑定的关键字,指向函数执行时的上下文。它的值取决于调用函数的方式。
    • 示例
      const obj = {
          name: 'Alice',
          greet() {
              console.log(`Hello, ${this.name}`);
          }
      };
      obj.greet(); // Hello, Alice
      
      const greetFunc = obj.greet;
      greetFunc(); // Hello, undefined (在非严格模式下)
      
  5. 解释 ===== 的区别。

    • 说明== 是宽松比较,会进行类型转换;=== 是严格比较,不会进行类型转换。
    • 示例
      console.log(0 == '0');  // true
      console.log(0 === '0'); // false
      
  6. 什么是 Promise?如何使用?

    • 说明Promise 是用于处理异步操作的对象,表示一个可能在将来某个时间点完成的操作。它有三种状态:pending(进行中)、fulfilled(已完成)、rejected(已失败)。
    • 示例
      const fetchData = () => {
          return new Promise((resolve, reject) => {
              setTimeout(() => {
                  resolve('Data fetched!');
              }, 1000);
          });
      };
      
      fetchData().then(data => console.log(data)); // 1秒后输出 "Data fetched!"
      
  7. 什么是 async/await?

    • 说明async/await 是基于 Promise 的语法糖,使异步代码看起来更像同步代码。async 声明一个异步函数,await 用于等待 Promise 完成。
    • 示例
      const fetchData = () => {
          return new Promise((resolve) => {
              setTimeout(() => {
                  resolve('Data fetched!');
              }, 1000);
          });
      };
      
      const fetchAsyncData = async () => {
          const data = await fetchData();
          console.log(data);
      };
      fetchAsyncData(); // 1秒后输出 "Data fetched!"
      
  8. 解释事件冒泡和事件捕获。

    • 说明事件冒泡是指事件从目标元素向上冒泡到父元素的过程;事件捕获是指事件从父元素向下传播到目标元素的过程。可以通过 addEventListener 的第三个参数控制。
    • 示例
      <div id="parent">
          <button id="child">Click me</button>
      </div>
      
      <script>
      const parent = document.getElementById('parent');
      const child = document.getElementById('child');
      
      parent.addEventListener('click', () => {
          console.log('Parent clicked');
      }, false); // false 为冒泡,true 为捕获
      
      child.addEventListener('click', () => {
          console.log('Child clicked');
      }, false);
      </script>
      
  9. 什么是节流(throttling)和防抖(debouncing)?

    • 说明节流是指限制某个函数在一定时间内只能执行一次;防抖是指在事件触发后等待一段时间,如果在这段时间内又触发了事件,则重新计时。

    • 示例(节流)

      function throttle(fn, delay) {
          let lastTime = 0;
          return function(...args) {
              const now = Date.now();
              if (now - lastTime > delay) {
                  lastTime = now;
                  fn.apply(this, args);
              }
          };
      }
      
    • 示例(防抖)

      function debounce(fn, delay) {
          let timer;
          return function(...args) {
              clearTimeout(timer);
              timer = setTimeout(() => {
                  fn.apply(this, args);
              }, delay);
          };
      }
      
  10. 解释浅拷贝和深拷贝的区别。

    • 说明浅拷贝只复制对象的第一层属性,若属性是引用类型,复制的是地址;深拷贝则递归复制所有层级的属性。

    • 示例(浅拷贝)

      const original = { a: 1, b: { c: 2 } };
      const shallowCopy = Object.assign({}, original);
      shallowCopy.b.c = 3;
      console.log(original.b.c); // 3 (原对象也受到影响)
      
    • 示例(深拷贝)

      const original = { a: 1, b: { c: 2 } };
      const deepCopy = JSON.parse(JSON.stringify(original));
      deepCopy.b.c = 3;
      console.log(original.b.c); // 2 (原对象没有受到影响)
      

Vue.js 面试题

  1. Vue 的核心概念是什么?

    • 说明Vue.js 是一个用于构建用户界面的渐进式框架。其核心概念包括响应式数据绑定、组件化开发和虚拟 DOM。
    • 示例
      new Vue({
          el: '#app',
          data: {
              message: 'Hello Vue!'
          }
      });
      
  2. 什么是 Vue 实例的生命周期钩子?

    • 说明Vue 实例在创建、挂载、更新和销毁的过程中会经历不同的生命周期阶段,生命周期钩子允许我们在这些阶段执行特定操作。
    • 示例
      new Vue({
          data() {
              return {
                  message: 'Hello!'
              };
          },
          created() {
              console.log('组件创建时调用');
          },
          mounted() {
              console.log('组件挂载后调用');
          },
          destroyed() {
              console.log('组件销毁前调用');
          }
      });
      
  3. 如何在 Vue 中创建组件?

    • 说明Vue 组件是 Vue 应用的核心,通过 Vue.component() 或单文件组件(.vue 文件)来定义。
    • 示例
      Vue.component('my-component', {
          template: '<div>A custom component!</div>'
      });
      
  4. 什么是双向数据绑定,如何实现?

    • 说明双向数据绑定允许视图和模型之间同步变化。Vue.js 使用 v-model 指令实现双向绑定。
    • 示例
      <div id="app">
          <input v-model="inputValue">
          <p>{{ inputValue }}</p> <!-- 实时显示输入的内容 -->
      </div>
      
      <script>
      new Vue({
          el: '#app',
          data() {
              return {
                  inputValue: ''
              };
          }
      });
      </script>
      
  5. Vue 的计算属性与方法的区别是什么?

    • 说明计算属性是基于其依赖进行缓存的,当依赖改变时才会重新计算;方法是每次调用时都会执行。
    • 示例
      new Vue({
          el: '#app',
          data() {
              return {
                  number: 1
              };
          },
          computed: {
              double() {
                  return this.number * 2; // 计算属性
              }
          },
          methods: {
              doubleMethod() {
                  return this.number * 2; // 方法
              }
          }
      });
      
  6. Vue 中的指令是什么?

    • 说明:指令是 Vue.js 特有的特殊属性,用于在 DOM 元素上应用特定的行为。常见的指令有 v-ifv-forv-show 等。
    • 示例
      <div id="app">
          <p v-if="isVisible">这个段落是可见的</p>
          <button @click="toggleVisibility">切换可见性</button>
      </div>
      
      <script>
      new Vue({
          el: '#app',
          data() {
              return {
                  isVisible: true
              };
          },
          methods: {
              toggleVisibility() {
                  this.isVisible = !this.isVisible; // 切换可见性
              }
          }
      });
      </script>
      
  7. 什么是 Vuex,如何使用?

    • 说明:Vuex 是 Vue.js 的状态管理库,允许集中管理组件的状态。它通过 State、Getters、Mutations 和 Actions 进行状态管理。
    • 示例
      const store = new Vuex.Store({
          state: {
              count: 0
          },
          mutations: {
              increment(state) {
                  state.count++;
              }
          }
      });
      
      new Vue({
          el: '#app',
          store,
          computed: {
              count() {
                  return this.$store.state.count; // 获取状态
              }
          },
          methods: {
              increment() {
                  this.$store.commit('increment'); // 提交变更
              }
          }
      });
      
  8. 如何在 Vue 中实现路由?

    • 说明:Vue Router 是 Vue.js 的官方路由管理器,允许在应用中实现导航和路由。
    • 示例
      const router = new VueRouter({
          routes: [
              { path: '/home', component: HomeComponent },
              { path: '/about', component: AboutComponent }
          ]
      });
      
      new Vue({
          el: '#app',
          router
      });
      
  9. 什么是 Vue 的过滤器,如何使用?

    • 说明:过滤器用于对数据进行格式化和处理,在模板中使用。
    • 示例
      Vue.filter('capitalize', function(value) {
          if (!value) return '';
          return value.charAt(0).toUpperCase() + value.slice(1);
      });
      
      new Vue({
          el: '#app',
          data() {
              return {
                  message: 'hello'
              };
          }
      });
      
  10. 什么是服务端渲染(SSR),Vue 如何实现?

    • 说明:服务端渲染是指在服务器上生成 HTML,并返回给客户端,提升首屏加载速度和 SEO 性能。Vue 可以通过 Nuxt.js 等框架实现 SSR。
    • 示例
      // 使用 Nuxt.js
      export default {
          asyncData(context) {
              return context.$axios.$get('/api/data').then(data => {
                  return { data };
              });
          }
      };
      

Vue 2 vs Vue 3 面试题

  1. Vue 2 和 Vue 3 的响应式系统有什么区别?

    • 说明Vue 2 使用 Object.defineProperty 实现响应式,主要通过 getter/setter 劫持对象属性。而 Vue 3 则使用 Proxy API,实现更加高效和灵活的响应式系统。
    • 示例(Vue 2):
      const vm = new Vue({
          data: {
              message: 'Hello'
          }
      });
      vm.message = 'World'; // 会触发视图更新
      
    • 示例(Vue 3):
      const { reactive } = Vue;
      const state = reactive({
          message: 'Hello'
      });
      state.message = 'World'; // 会触发视图更新
      
  2. Vue 3 引入的 Composition API 有什么优势?

    • 说明Composition API 允许更灵活的代码组织和复用逻辑。它支持逻辑的组合,减少了大型组件中的代码耦合,提高了可读性。
    • 示例
      // Vue 2
      export default {
          data() {
              return { count: 0 };
          },
          methods: {
              increment() {
                  this.count++;
              }
          }
      };
      
      // Vue 3
      import { ref } from 'vue';
      export default {
          setup() {
              const count = ref(0);
              const increment = () => count.value++;
              return { count, increment };
          }
      };
      
  3. 在 Vue 3 中如何创建一个组件?

    • 说明Vue 3 支持使用 Composition API 创建组件,同时也保留了 Options API 的使用方式。
    • 示例(使用 Composition API):
      import { defineComponent } from 'vue';
      
      export default defineComponent({
          setup() {
              return () => <div>Hello, Vue 3!</div>;
          }
      });
      
  4. Vue 2 中的 $set 和 Vue 3 中的反应性系统如何处理新增属性?

    • 说明在 Vue 2 中,添加新属性需要使用 $set 方法才能使其响应式;而在 Vue 3 中,使用 Proxy 后,新增属性会自动变为响应式。

    • 示例(Vue 2):

      const vm = new Vue({
          data: {
              obj: {}
          }
      });
      Vue.set(vm.obj, 'newProp', 'value'); // 新增属性使其响应式
      
    • 示例(Vue 3):

      const { reactive } = Vue;
      const state = reactive({ obj: {} });
      state.obj.newProp = 'value'; // 新增属性自动响应
      
  5. 如何处理 Vue 2 和 Vue 3 中的事件监听?

    • 说明在 Vue 2 中使用 v-on 监听事件,而在 Vue 3 中可以使用 @ 符号简化语法

    • 示例(Vue 2):

      <button v-on:click="handleClick">Click me</button>
      
    • 示例(Vue 3):

      <button @click="handleClick">Click me</button>
      
  6. Vue 3 中的 Teleport 组件是什么?有什么用?

    • 说明Teleport 组件允许将子组件渲染到 DOM 的不同位置,通常用于模态框或工具提示等场景。
    • 示例
      <template>
          <teleport to="body">
              <div class="modal">这是一个模态框</div>
          </teleport>
      </template>
      
  7. Vue 3 中的 v-model 有哪些变化?

    • 说明Vue 3 中的 v-model 允许更灵活的使用,支持多个 v-model 和自定义 modelValue 属性。

    • 示例

      <input v-model="message" />
      
    • 示例(多个 v-model)

      <MyComponent v-model:title="title" v-model:content="content" />
      
  8. Vue 3 引入的 Suspense 组件有什么用途?

    • 说明Suspense 组件用于处理异步组件的加载状态,提供 fallback 内容直到异步组件加载完成。
    • 示例
      <suspense>
          <template #default>
              <AsyncComponent />
          </template>
          <template #fallback>
              <div>Loading...</div>
          </template>
      </suspense>
      
  9. Vue 3 中的 provide/inject 是如何工作的?

    • 说明provide/inject 允许父组件向其所有子组件提供数据,而不需要通过 props 层层传递。
    • 示例
      // 父组件
      import { provide } from 'vue';
      export default {
          setup() {
              provide('key', 'value');
          }
      };
      
      // 子组件
      import { inject } from 'vue';
      export default {
          setup() {
              const value = inject('key');
              console.log(value); // 'value'
          }
      };
      
  10. 在 Vue 2 和 Vue 3 中如何处理错误捕获?

    • 说明Vue 2 中使用全局的 errorHandler 和组件内的 errorCaptured;而 Vue 3 采用了新的 API,可以在 setup 中使用 onErrorCaptured

    • 示例(Vue 2):

      Vue.config.errorHandler = (err, vm) => {
          console.error(err);
      };
      
    • 示例(Vue 3):

      import { onErrorCaptured } from 'vue';
      setup() {
          onErrorCaptured((err) => {
              console.error(err);
              return false; // 继续传播
          });
      }
      

FLutter 

1. 什么是 Flutter?它的优势是什么?

  • Flutter 是 Google 提供的开源 UI 框架,用于构建跨平台应用程序。它允许使用 Dart 编程语言编写代码,并通过一个代码库生成适用于 iOS、Android、Web 和桌面应用的界面。
  • 优势
    • 单一代码库支持多平台。
    • 高性能,因为 Flutter 使用自己的渲染引擎。
    • 丰富的自定义控件,提供了极大的设计自由。
    • 热重载功能,提高开发效率。

2. StatefulWidget 和 StatelessWidget 有什么区别?

  • StatelessWidget 是不可变的,一旦构建完成,Widget 的状态不可更改,通常用于无状态的 UI 元素。
  • StatefulWidget 是可变的,可以在运行时动态更改状态,需要通过 setState 来更新 UI。

3. Flutter 中的状态管理有哪些方式?

  • Flutter 提供了多种状态管理的方式:
    1. setState():最基础的状态管理方式,适用于小范围的组件状态管理。
    2. InheritedWidget:用于在组件树中跨越多个组件共享数据。
    3. Provider:一种更现代且常用的状态管理库,基于 InheritedWidget,简化了状态管理流程。
    4. Riverpod:Provider 的替代方案,提供更灵活的 API。
    5. Bloc (Business Logic Component):使用事件和状态流来管理应用程序状态。
    6. GetX:轻量级的状态管理、依赖注入和路由管理框架。

4. 什么是 Hot Reload 和 Hot Restart?有什么区别?

  • Hot Reload:只重新加载 Dart 代码的更改,并保持应用程序的状态不变。这使得开发过程更加高效。
  • Hot Restart:重新启动应用程序,并重新加载所有状态和代码,类似于应用的冷启动。

5. Flutter 中的 Widget 树是什么?为什么重要?

  • 在 Flutter 中,所有东西都是 Widget,Flutter 应用由一棵 Widget 树组成。Widget 树定义了应用程序的 UI 和布局,理解和构建有效的 Widget 树对于提高性能非常重要。

6. 什么是 Keys?为什么需要使用 Keys?

  • Keys 是 Flutter 中用于标识和跟踪 Widget 的特殊属性。它们在 Widget 树中起到识别作用,特别是在 List 或状态复杂的情况下,Keys 帮助 Flutter 正确地更新和维护 Widget。
  • 使用场景
    • ListView 中保持元素顺序不变。
    • 当需要保留 StatefulWidget 状态时。

7. Flutter 中如何处理异步操作?

  • Flutter 提供了多种处理异步操作的方式:
    1. 使用 asyncawait 处理异步函数。
    2. 使用 Future 来表示异步操作的结果。
    3. 使用 Stream 来处理一系列的异步事件,例如流式数据。

8. Flutter 中的 Navigator 和路由是什么?如何管理路由?

  • Navigator 是 Flutter 中用于管理应用页面导航的组件。它维护一个堆栈,用于跟踪屏幕导航。
  • 路由管理
    1. 通过 Navigator.push()Navigator.pop() 方法进行页面间的跳转和返回。
    2. 使用 MaterialPageRoute 或自定义的 PageRoute 实现页面动画。
    3. 通过 onGenerateRouteNavigator 2.0 实现复杂的路由管理。

9. 什么是 FutureBuilder 和 StreamBuilder?它们的作用是什么?

  • FutureBuilder 是用于处理和显示 Future 数据的 Widget,适合一次性异步数据获取。
  • StreamBuilder 则用于处理流数据,适合用于多次异步数据变化的场景(如数据流)。

10. 如何优化 Flutter 应用的性能?

  • 优化方法
    1. 避免在 build() 方法中执行繁重的计算。
    2. 使用 const 构建不可变的 Widget。
    3. 合理使用 ListView.builder 等延迟加载的列表控件。
    4. 使用 RepaintBoundary 降低不必要的重绘。
    5. 分析性能瓶颈,可以通过 Flutter DevTools 进行调试。

11. Flutter 中如何进行网络请求?

  • 可以使用 Flutter 提供的 http 包进行网络请求。以下是一个简单的网络请求示例:
    import 'package:http/http.dart' as http;
    import 'dart:convert';
    
    Future<void> fetchData() async {
      final response = await http.get(Uri.parse('https://api.example.com/data'));
      if (response.statusCode == 200) {
        var data = jsonDecode(response.body);
        print(data);
      } else {
        throw Exception('Failed to load data');
      }
    }
    

12. 如何在 Flutter 中实现动画效果?

  • Flutter 提供了多种方式实现动画,包括:
    1. 使用 AnimatedBuilderAnimatedWidget 来实现基本动画。
    2. 使用 TweenAnimationController 实现自定义动画。
    3. 使用 Implicit AnimationsAnimatedContainerAnimatedOpacity 等简化常见动画效果的实现。

13. Flutter 中如何进行国际化 (i18n)?

  • Flutter 提供了 flutter_localizations 包来支持国际化。主要步骤包括:
    1. pubspec.yaml 中添加依赖:
      dependencies:
        flutter_localizations:
          sdk: flutter
      
    2. 使用 Intl 包来管理翻译文件。
    3. MaterialApp 中配置 localizationsDelegatessupportedLocales

14. 什么是 Sliver?如何使用 Sliver Widgets?

  • Sliver 是一组可以延迟加载和滚动的 Widget。它们允许更灵活的滚动效果,特别是在大数据列表和自定义滚动布局中。常见的 Sliver 包括 SliverListSliverGridSliverAppBar 等。

15. Flutter 中如何实现平台特定的代码?

  • Flutter 通过平台通道(Platform Channels)允许与原生代码(如 Android 的 Kotlin/Java,iOS 的 Swift/Objective-C)进行通信,从而调用平台特定的功能。
  • 可以通过 MethodChannel 实现 Flutter 与原生代码的双向通信。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2224127.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于C#开发游戏辅助工具的Windows底层相关方法详解

开发游戏辅助工具通常需要深入了解Windows操作系统的底层机制&#xff0c;以及如何与游戏进程进行有效交互。本文将基于C#语言&#xff0c;从Windows底层方法的角度来详细讲解开发游戏辅助工具的相关技术和概念。 一、游戏辅助工具的基本概述 游戏辅助工具&#xff0c;通常被称…

Java应用程序的测试覆盖率之设计与实现(三)-- jacoco cli 客户端

一、背景 上文已把覆盖率数据采集好了,并提供远程连接的tcp地址及端口。 jacoco cli文档jacoco cli jar包jacococli.jar 我下载好了,放在github工程里。 本文主要是介绍如何使用jacoco cli 客户端读取并生成覆盖率报告。 二、使用 1、dump覆盖率统计 java -jar doc/jacoc…

duilib的应用 在双屏异分辨率的显示器上 运行显示不出来

背景&#xff1a;win11&#xff0c;duilib应用&#xff0c;双显示器&#xff0c;两台分辨率相同&#xff0c;分别设置不同的缩放以后&#xff0c;应用运行以后&#xff0c;程序闪一下消失或者程序还在&#xff0c;但是UI显示不出来。 原因 窗口风格设置不合理&#xff0c;所以…

【办公类-57-01】美工室材料报销EXCEL表批量插入截图(图片)

背景需求&#xff1a; 我们班分到美工室&#xff0c;需要准备大量材料&#xff0c;根据原始的报销单EXCLE&#xff0c;里面有商品名称、图片、链接、单位、数量等信息 今天我和搭档一起填写新表&#xff0c;发现手机截图的图片插入EXCEL后非常大&#xff0c; 需要手动调整图片…

alovajs:前后端交互还能这么玩?

嘿&#xff0c;小伙伴们&#xff01;今天我要和大家分享一个超级有趣的发现。最近在折腾项目时&#xff0c;我遇到了一个叫 alovajs 的工具&#xff0c;它居然能帮我们构建 Client-Server 交互层&#xff01;听起来有点高大上&#xff0c;但其实超级实用。一起来探索这个新大陆…

JS+Springboot做一个交互Demo

背景&#xff1a;老大做了一个 SDK&#xff0c;包含字符加解密、文件加解密&#xff0c;要求能从前端访问&#xff0c;并且能演示的 Demo。 思路&#xff1a;html 写页面&#xff0c;js 发送请求&#xff0c;freemarker 做简单的参数交互&#xff0c;JAVA 后端处理。 一、项目依…

element 按钮变形 el-button样式异常

什么都没动&#xff0c;element UI的按钮变形了&#xff0c;莫名其妙&#xff0c;连官网的也变形了&#xff0c;换了其它浏览器又正常&#xff0c; 难道这是element UI的问题&#xff1f;NO&#xff0c;是浏览器的插件影响到了&#xff01;去扩展插件里面一个个关闭扩展&#x…

使用高德API和MapboxGL实现路径规划并语音播报

概述 本文使用高德API实现位置查询和路径规划&#xff0c;使用MapboxGL完成地图交互与界面展示&#xff0c;并使用Web Speech API实现行驶中路线的实时语音播报。 效果 Web Speech API简介 Web Speech API 使你能够将语音数据合并到 Web 应用程序中。Web Speech API 有两个部…

软件测试的重要一环:「性能测试」怎么做?

性能测试是软件测试中的重要一环&#xff0c;今天给大家介绍性能测试及如何使用RunnerGo完成性能测试任务。 性能测试是什么&#xff1f; 一句话概括&#xff1a;不断地通过不同场景的系统表现去探究系统设计与资源消耗之间的平衡&#xff0c;为开发人员提供消除瓶颈所需的诊…

IntelliJ IDEA 设置数据库连接全局共享

前言 在日常的软件开发工作中&#xff0c;我们经常会遇到需要在多个项目之间共享同一个数据库连接的情况。默认情况下&#xff0c;IntelliJ IDEA 中的数据库连接配置是针对每个项目单独存储的。这意味着如果你在一个项目中配置了一个数据库连接&#xff0c;那么在另一个项目中…

从零搭建开源陪诊系统:关键技术栈与架构设计

构建一个开源陪诊系统是一个涉及多种技术的复杂工程。为了让这个系统具备高效、可靠和可扩展的特点&#xff0c;我们需要从架构设计、技术栈选择到代码实现等方面进行全面的考量。本文将从零开始&#xff0c;详细介绍搭建开源陪诊系统的关键技术栈和架构设计&#xff0c;并提供…

C#中的委托、匿名方法、Lambda、Action和Func

委托 委托概述 委托是存有对某个方法的引用的一种引用类型变量。定义方法的类型&#xff0c;可以把一个方法当作另一方法的参数。所有的委托&#xff08;Delegate&#xff09;都派生自 System.Delegate 类。委托声明决定了可由该委托引用的方法。 # 声明委托类型 委托类型声…

汽车免拆诊断案例 | 2019 款奥迪 A6L 车行驶中偶发熄火

故障现象  一辆2019款奥迪A6L车&#xff0c;搭载2.0T发动机&#xff0c;累计行驶里程约为9万km。车主反映&#xff0c;车辆行驶中偶发熄火&#xff0c;故障频率较高。 故障诊断  接车后试车&#xff0c;起动发动机&#xff0c;可以正常起动着机。使用故障检测仪检测&#x…

ELK之路第一步——Elasticsearch集群的搭建以及踩坑记录

elasticSearch集群 前言一、架构二、下载三、虚拟机相关设置3.1 创建es用户3.2 为建es用户赋权sudo3.3 更换es目录所属用户 四、Elasticsearch配置文件修改4.1 修改elasticsearch.yml4.2 修改jvm.options4.3 修改jdk路径 五、启动六、启动报错七、可视化界面cerebro 前言 Elk&…

springboot080房屋租赁管理系统的设计与实现(论文+源码)_kaic

毕 业 设 计&#xff08;论 文&#xff09; 题目&#xff1a;房屋租赁管理系统的设计与实现 摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好…

Linux 基础io_ELF_虚拟物理地址_动态库加载

1.可执行程序格式 ELF [wwshcss-ecs-178e myshell]$ ll total 56 -rw-rw-r-- 1 wws wws 92 Oct 17 19:14 file -rw-rw-r-- 1 wws wws 82 Oct 12 16:51 makefile -rw-r--r-- 1 wws wws 90 Oct 17 19:13 myfile -rwxrwxr-x 1 wws wws 20128 Oct 16 21:02 myshell -rw-r…

005:航空力学基础、无人机操纵、飞机性能

摘要&#xff1a;本文详细介绍无人机稳定性、操控性、飞机性能等概念。 一、飞机的稳定性 概念&#xff1a; 飞机的稳定性&#xff08;安定性&#xff09;&#xff0c;是指在飞机受到扰动后&#xff0c;不经飞行员操纵&#xff0c;能恢复到受扰动前的原始状态&#xff08;即原…

萤石设备视频接入平台EasyCVR私有化视频平台变电站如何实现远程集中监控?

一、方案背景 随着城市经济的发展和电力系统的改造&#xff0c;变电站的数量和规模逐渐增加&#xff0c;对变电站的安全管理和监控需求也越来越高。视频监控系统作为重要的安全管理手段&#xff0c;在变电站中起到了关键的作用。 目前青犀视频研发的萤石设备视频接入平台EasyC…

刷题 - 图论

1 | bfs/dfs | 网格染色 200. 岛屿数量 访问到马上就染色&#xff08;将visited标为 true)auto [cur_x, cur_y] que.front(); 结构化绑定&#xff08;C17&#xff09;也可以不使用 visited数组&#xff0c;直接修改原始数组时间复杂度: O(n * m)&#xff0c;最多将 visited 数…

生信软件39 - GATK最佳实践流程重构,提高17倍分析速度的LUSH流程

1. LUSH流程简介 基因组测序通常用于分子诊断、分期和预后&#xff0c;而大量测序数据在分析时间方面提出了挑战。 对于从FASTQ到VCF的整个流程&#xff0c;LUSH流程在非GVCF和GVCF模式下都大大降低了运行时间&#xff0c;30 X WGS数据耗时不到2 h&#xff0c;从BAM到VCF约需…