React组件销毁中清理异步操作和取消请求
通常是 react 组件已经从 DOM 中移除,但是我们在组件中做的一些异步操作还未结束,如:接口调用等,当其完成时,执行setState操作,而此时我们已经将改组件dom移除,从而报错。
componentWillUnmount ( ) {
this . setState = ( state, callback) => {
return
}
}
react16新特性
react 16 hooks
http1.0 与http2.0的区别
H5移动端开发技巧
event-loop(事件轮询):JS实现异步的具体解决方案
具体步骤如下:
同步代码,直接执行
异步函数先放在异步队列中
待同步函数执行完毕,轮询执行异步队列的函数。
$. ajax ( {
url: '***' ,
success: function ( result) {
console. log ( 'a' )
}
} )
setTimeout ( function ( ) {
console. log ( 'b' )
} , 100 )
setTimeout ( function ( ) {
console. log ( 'c' )
} )
console. log ( 'd' )
webpack打包优化
webpack性能监控与分析
fiddler抓包工具
react性能优化
常见的移动端兼容性问题
react特点
声明式设计-------采用声明规范,用ReactDOM.render()来声明
采用虚拟DOM的模拟,最大限度的减少和真实DOM节点的交互
灵活—使用库和框架
组件—组件的数据流之间的传递是单向的
单向响应的数据流----使用setState去更改数据的值,使用getInitialState设置值,用this.state来获取值
浏览器缓存
异步编程六种方式
继承
ES6模块化如何使用,开发环境如何打包?
ES6是javascript的一个标准(可以理解为他是原生javascript的一个版本号),目前每个浏览器对ES6的支持程度不一样,所以需要使用babel对ES6进行编译。 语法:import export(注意有无default) 环境:babel编译ES6语法(创建.babelrc文件),模块化可用webpack和rollup打包
export default {
a: 100 }
export function fn1 ( ) {
alert ( 'fn1' )
}
export function fn2 ( ) {
alert ( 'fn2' )
}
import util1 from './util1'
import {
fn1, fn2} from './util2'
{
"presets" : [
[ "latest" , {
"es2015" : {
"modules" : false
}
} ]
] ,
"plugins" : [ "external-helpers" ]
}
module. exports = {
entry: './src/index.js' ,
output: {
path: _dirname,
filename: './build/bundle.js'
} ,
module: {
rules: [ {
test: /\.js?$/ ,
exclude: /(node_modules)/ ,
loader: 'babel-loader'
} ]
}
}
import babel from 'rollup-plugin-babel'
import resolve from 'rollup-plugin-node-resove'
export default {
extry: 'src/index.js' ,
format: 'umd' ,
plugins: [
resolve ( ) ,
babel ( {
exclude: 'node_modules/**'
} )
] ,
dest: 'build/bundle.js'
}
模块化标准有:AMD(require.js),CMD(c.js),Common(node.js) nodeJS使用的是Common标准,前端打包工具可以使用。
Class和普通构造函数有何区别?
class在语法上更加贴合面向对象的写法 class实现继承更加易读、易理解 本质还是语法糖,使用prototype(可将class看作是一个语法糖)
function MathHandle ( x, y) {
this . x = x;
this . y = y;
}
MathHandle. prototype. add = function ( ) {
return this . x + this . y;
}
var m = new MathHandle ( 1 , 2 ) ;
console. log ( m. add ( ) )
class MathHandle {
constructor ( x, y) {
this . x = x;
this . y = y;
}
add ( ) {
return this . x + this . y
}
}
var m = new MathHandle ( 1 , 2 ) ;
console. log ( m. add ( ) )
typeof MathHandle
MathHandle = MathHandle. prototype. constructor
m. __proto__ === MathHandle. prototype
function Animal ( ) {
this . eat = function ( ) {
console. log ( 'animal eat' )
}
}
function Dog ( ) {
this . bark = function ( ) {
console. log ( 'dog bark' )
}
}
Dog. prototype = new Animal ( )
var hashiqi = new Dog ( )
class Animal {
construtor ( name) {
this . name = name
}
eat ( ) {
console. log ( ` ${
this . name} eat` )
}
}
class Dog extends Animal {
constructor ( name) {
super ( name)
this . name = name
}
say ( ) {
console. log ( ` ${
this . name} say` )
}
}
const dog = new Dog ( '哈士奇' )
dog. say ( )
dog. eat ( )
不使用prototype和new实现继承
promise
new Promise实例,而且要return 该实例 new Promise时要传入函数,函数有resolve reject两个参数 成功时执行resolve(), 失败时执行reject() 使用.then监听结果
function loadImg ( src, callback, fail) {
var img = document. createElement ( 'img' )
img. onload = function ( ) {
callback ( img)
}
img. onerror = function ( ) {
fail ( )
}
img. src = src
}
var src = 'http://www.baidu.com/static/img/index/logo.png'
loadImg ( src, function ( img) {
console. log ( img. width)
} , function ( ) {
console. log ( 'failed' )
} )
function loadImg ( src) {
const promise = new Promise ( function ( resolve, reject) {
var img = document. createElement ( 'img' )
img. onload = function ( ) {
resolve ( img)
}
img. onerror = function ( ) {
reject ( )
}
img. src = src
} )
return promise
}
var src = 'http://www.baidu.com/static/img/index/logo.png'
var result = loadImg ( src)
result. then ( function ( img) {
console. log ( img. width)
} , function ( ) {
console. log ( 'failed' )
} )
result. then ( function ( img) {
console. log ( img. height)
} ) . then ( function ( img) {
console. log ( img. src)
} ) . catch ( function ( ex) {
console. log ( ex)
} )
var src1 = 'https://www.baidu.com/static/img/index/logo.png'
var result1 = loadImg ( src1)
var src2 = 'https://www.baidu.com/static/img/index/logo2.png'
var result2 = loadImg ( src2)
result1. then ( function ( img1) {
console. log ( '第一张图片加载完成' )
return result2
} ) . then ( function ( img2) {
console. log ( '第二个图片加载完成' )
} ) . catch ( function ( ex) {
console. log ( ex)
} )
Promise. all ( [ result1, result2] ) . then ( datas = {
console. log ( datas[ 0 ] , datas[ 1 ] )
} )
Promise. race ( [ result1, result2] ) . then ( data => {
console. log ( data)
} )
ES6常用功能?
模块化(import export)、class、promise、let/const、多行字符串/模板变量、解构赋值、块级作用域、函数默认参数、箭头函数
const el = ` ${
this . name} age`
const obj = {
a: 10 , b: 20 , c: 30 }
const {
a, c} = obj
const arr = [ 10 , 20 , 30 ]
const [ a, b, c] = arr
var obj = {
a: 100 , b: 200 }
for ( var item in obj) {
console. log ( item) }
console. log ( item)
for ( let item in obj) {
console. log ( item) }
console. log ( item)
function ( a, b= 0 ) {
}
function fn ( ) {
console. log ( 'real' , this )
var arr = [ 1 , 2 , 3 ]
arr. map ( function ( item) {
console. log ( 'js' , this )
} )
arr. map ( item => {
console. log ( 'es6' , this )
} )
}
fn. call ( {
a: 100 } )
原型的实际应用:jquery与zepto
< script>
var $p = $ ( 'p' )
$p. css ( 'font-size' , '40px' )
console. log ( $p. html ( ) )
var $div = $ ( 'div' )
$div. css ( 'color' , 'red' )
console. log ( $div. html ( ) )
< / script>
var zepto = {
}
var $ = function ( selector) {
return zepto. init ( selector)
}
zepto. init = function ( selector) {
var slice = Array. prototype. slice
var dom = slice. call ( document. querySelectorAll ( selector) )
return zepto. Z ( dom, selector)
}
function Z ( dom, selector) {
var i, len = dom ? dom. length : 0
for ( i= 0 ; i< len; i++ ) this [ i] = dom[ i]
this . length = len
this . selector = selector || ''
}
zepto. Z = function ( dom, selector) {
return new Z ( dom, selector)
}
$. fn = {
constructor: zepto. Z ,
css: function ( key, value) {
} ,
html: function ( value) {
}
}
zepto. Z . prototype = Z . prototype = $. fn
var jQuery = function ( selector) {
return new jQuery. fn. init ( selector) ;
}
var init = jQuery. fn. init = function ( selector) {
var slice = Array. prototype. slice
var dom = slice. call ( document. querySelectorAll ( selector) )
var i, len= dom ? dom. length : 0
for ( i= 0 ; i< len; i++ ) this [ i] = dom[ i]
this . length = len
this . selector = selector || ''
}
jQuery. fn = jQuery. prototype = {
constructor: jQuery,
css: function ( key, value) {
}
html: function ( value) {
}
}
init. prototype = jQuery. fn
原型如何体现它的扩展性:jquery和zepto的插件机制
好处:
只有$会暴露在window全局变量
将插件扩展统一到$.fn.xxx这一接口,方便使用
$. fn. getNodeName = function ( ) {
return this [ 0 ] . nodeName
}
什么是单线程,和异步有什么关系
单线程:同时只做一件事,两段JS不能同时执行 原因:避免DOM渲染冲突
浏览器需要渲染DOM
JS可以修改DOM结构
JS执行的时候,浏览器DOM渲染会暂停
两段JS也不能同时执行(都修改DOM就冲突了)
webwork支持多线程 ,但是不能访问DOM
当前异步的解决方案?
callback
jquery的deferred’
promise
async/await
generator
vdom是什么,为何会存在vdom?
vdom即虚拟DOM,用JS模拟DOM结构,将DOM对比操作放在JS层提高效率 目的:提高重绘性能(减少对DOM的操作与重绘,提高运行效率)。
< body>
< div id= "container" > < / div>
< button id= 'btn-change' > change< / button>
< / body>
< script type= 'text/javascript' >
var data = [
{
name: '张三' , age: 20 , address: 'bj' } ,
{
name: '李四' , age: 32 , address: 'sh' }
]
function render ( data) {
var $container = $ ( '#container' )
$container. html ( '' )
var $table = $ ( '') ;
$table. append ( $ ( 'name age address ') ) ;
data. forEach ( ( {
name, age, address} ) => {
$table. append ( $ ( `${
name} ${
age} ${
address} ` ) )
} ) ;
$container. append ( $table)
}
$ ( '#btn-change' ) . click ( function ( ) {
data[ 1 ] . age = 30
data[ 0 ] . address = 'hb'
render ( data)
} )
render ( data)
< / script>
vdom如何使用,核心API是什么 ?
vue1.0使用的snabbdom开源库实现的vdom
< ul id= 'list' >
< li calss= 'item' > Item1< / li>
< li calss= 'item' > Item2< / li>
< / ul>
{
tag: 'ul' ,
attrs: {
id: 'list' } ,
children: [ {
tag: 'li' ,
attrs: {
className: 'item' } ,
children: [ 'Item1' ]
} , {
tag: 'li' ,
attrs: {
className: 'item' } ,
children: [ 'Item2' ]
} ]
}
27. 什么是diff算法?vdom为何用diff算法? 28. diff算法的实现流程
function updateChildren ( vnode, newVnode) {
var children = vnode. children || [ ]
var newChildren = newVnode. children || [ ]
children. forEach ( function ( child, index) {
var newChild = newChildren[ index]
if ( newChild == null ) return
if ( child. tag === newChild. tag) {
updateChildren ( child, newChild)
} else {
replaceNode ( child, newChild)
}
} )
}
function replaceNode ( vnode, newVnode) {
var elem = vnode. elem
var newEleme = createElement ( newVnode)
替换
JSbridge
call、apply、bind的区别?
webpack打包文档
使用jquery和使用框架的区别?
数据和视图的分离;
以数据驱动视图(只关心数据变化,DOM操作被封装)
如何理解MVVM?
MVC:(modal数据源,view视图,controller控制器) 运行流程:view上的一个操作(如点击等)通知controller,controller操作modal,modal发生变化,更新view
MVVM: (modal数据,view视图,viewModal-连接modal和view) viewModal工作:view通过事件绑定操作modal,modal通过数据绑定操作view
34. VUE三要素
响应式:vue如何监听到data的每个属性变化? 模板引擎:vue的模板如何被解析,指令如何处理? 渲染:vue的模板如何被渲染成html,以及渲染过程?
vue中如何实现响应式?
什么是响应式? 修改data属性之后,vue立刻监听到 data属性被代理到vm上
var mv = {
}
var data = {
name: 'lmh' , age: 18 }
var key, value
for ( key in data {
( function ( key) {
Object. defineProperty ( mv, key, {
get : function ( ) {
return data[ key]
} ,
set : function ( newVal) {
data[ key] = newVal
}
} )
} ) ( key)
}
var obj = {
name: 'lmh' , age: 18 , getAddress: function ( ) {
alert ( 'bj' ) } }
function fn ( ) {
with ( obj) {
alert ( name)
alert ( age)
getAddress ( )
}
}
vue实现的整体流程
第一步:解析模板成render函数 第二步:响应式开始监听 第三步:首次渲染,显示页面,且绑定依赖(v-if, on:click等) 第四步:data属性变化,触发reRender
说一下对组件化的理解
组件的封装:封装视图、数据、变化逻辑 组件的复用:props传递、复用
JSX的本质是什么(语法糖)
自定义组件的解析
'div’直接渲染
即可
List等自定义组件(class),vdom默认不认识
因此List定义的时候必须声明render函数
根据props初始化实例,然后执行实例的render函数
render函数返回的还是vnode对象
ReactDOM. render ( < App/ > , document. getElementById ( 'root' ) )
React. createElement ( App, null ) ;
var app = new App ( )
return app. render ( )
说一下setState的过程
setState是异步的 每个组件实例,都有renderComponent方法 执行renderComponent会重新执行实例的render render函数返回newVnode,然后重新preVnode 执行path(preVnode, newVnode)
add(title) {
const currentList = this . state. list
console. log ( this . state. list)
this . setState ( {
list: currentList. concat ( title) } )
console. log ( this . state. list)
this . setState (
{
list: current. concat ( title) } ,
( ) => {
consol. log ( this . state. list) )
}
setState异步原理
阐述一下自己对React和Vue的认识
两者的本质区别 vue-本质是MVVM框架,由MVC发展而来 React-本质是前端组件化框架,由后端组件化发展而来 注:但这并不妨碍他们两者都能实现相同的功能
模板的区别 vue-使用模板(最初由angular提出) React-使用JSX 模板语法上,我更加倾向于JSX 模板分离上,我更加倾向于vue
组件化的区别 react本身就是组件化,没有组件化就不是react vue也支持组件化,不过是在MVVM上的扩展 对于组件化,更加倾向于React,做的彻底而清晰
两者的共同点 都支持组件化 都是数据驱动视图
两者对比 国内使用,首推vue。文档更易读、易学、社区够大 如果团队水平较高,推荐使用React。组件化和JSX
< div>
< h1 v- if = 'ok' > yes< / h1>
< h1 v- else > no< / li>
< / div>
< div>
{
ok ? < h1> yes< / h1> : < h1> no< / h1> }
< / div>
render ( ) {
return (
< div>
< Input addTitle= {
this . addTitle. bind ( this ) } / >
< List data= {
this . state. list} / >
< / div>
)
}
hybrid是什么,为什么要用hybrid?
hybrid即前端和客户端的混合开发
存在价值 可以快速迭代更新(无需app审核) 体验流畅(和NA的体验基本类似) 减少开发和沟通成本,双端公用一套代码
缺点 开发成本高。联调、测试、查BUG都比较麻烦 运维成本高。(需要维护APP和H5两段,每次H5更新时都要进行版本号查询对比,以确认最新版)
适应场景 hybrid:产品的稳定功能,体验要求高,迭代频繁 h5:单次的运营活动(如**红包)或不常用功能
webview
是app中的一个组件(app可以有webview, 也可以没有) 用于加载h5页面,即一个小型的浏览器内核
45.如何证明你热爱编程?
看书 写博客 做开源
你可能感兴趣的:(笔记整理,面试)
python八股文面试题分享及解析(1)
Shawn________
python
#1.'''a=1b=2不用中间变量交换a和b'''#1.a=1b=2a,b=b,aprint(a)print(b)结果:21#2.ll=[]foriinrange(3):ll.append({'num':i})print(11)结果:#[{'num':0},{'num':1},{'num':2}]#3.kk=[]a={'num':0}foriinrange(3):#0,12#可变类型,不仅仅改变
MYSQL面试系列-04
king01299
面试 mysql 面试
MYSQL面试系列-0417.关于redolog和binlog的刷盘机制、redolog、undolog作用、GTID是做什么的?innodb_flush_log_at_trx_commit及sync_binlog参数意义双117.1innodb_flush_log_at_trx_commit该变量定义了InnoDB在每次事务提交时,如何处理未刷入(flush)的重做日志信息(redolog)。它
Kafka 消息丢失如何处理?
架构文摘JGWZ
学习
今天给大家分享一个在面试中经常遇到的问题:Kafka消息丢失该如何处理?这个问题啊,看似简单,其实里面藏着很多“套路”。来,咱们先讲一个面试的“真实”案例。面试官问:“Kafka消息丢失如何处理?”小明一听,反问:“你是怎么发现消息丢失了?”面试官顿时一愣,沉默了片刻后,可能有点不耐烦,说道:“这个你不用管,反正现在发现消息丢失了,你就说如何处理。”小明一头雾水:“问题是都不知道怎么丢的,处理起来
每日算法&面试题,大厂特训二十八天——第二十天(树)
肥学
⚡算法题⚡面试题每日精进 java 算法 数据结构
目录标题导读算法特训二十八天面试题点击直接资料领取导读肥友们为了更好的去帮助新同学适应算法和面试题,最近我们开始进行专项突击一步一步来。上一期我们完成了动态规划二十一天现在我们进行下一项对各类算法进行二十八天的一个小总结。还在等什么快来一起肥学进行二十八天挑战吧!!特别介绍小白练手专栏,适合刚入手的新人欢迎订阅编程小白进阶python有趣练手项目里面包括了像《机器人尬聊》《恶搞程序》这样的有趣文章
【华为OD技术面试真题 - 技术面】- python八股文真题题库(4)
算法大师
华为od 面试 python
华为OD面试真题精选专栏:华为OD面试真题精选目录:2024华为OD面试手撕代码真题目录以及八股文真题目录文章目录华为OD面试真题精选**1.Python中的`with`**用途和功能自动资源管理示例:文件操作上下文管理协议示例代码工作流程解析优点2.\_\_new\_\_和**\_\_init\_\_**区别__new____init__区别总结3.**切片(Slicing)操作**基本切片语法
【华为OD技术面试真题 - 技术面】-测试八股文真题题库(1)
算法大师
华为od 面试 python 算法 前端
华为OD面试真题精选专栏:华为OD面试真题精选目录:2024华为OD面试手撕代码真题目录以及八股文真题目录文章目录华为OD面试真题精选1.黑盒测试和白盒测试的区别2.假设我们公司现在开发一个类似于微信的软件1.0版本,现在要你测试这个功能:打开聊天窗口,输入文本,限制字数在200字以内。问你怎么提取测试点。功能测试性能测试安全性测试可用性测试跨平台兼容性测试网络环境测试3.接口测试的工具你了解哪些
【华为OD技术面试真题精选 - 非技术题】 -HR面,综合面_华为od hr面
一个射手座的程序媛
程序员 华为od 面试 职场和发展
最后的话最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!资料预览给大家整理的视频资料:给大家整理的电子书资料:如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。需要这份系统化的资料的朋友,可以点击这里获
【华为OD技术面试真题 - 技术面】- python八股文真题题库(1)
算法大师
华为od 面试 python
华为OD面试真题精选专栏:华为OD面试真题精选目录:2024华为OD面试手撕代码真题目录以及八股文真题目录文章目录华为OD面试真题精选1.数据预处理流程数据预处理的主要步骤工具和库2.介绍线性回归、逻辑回归模型线性回归(LinearRegression)模型形式:关键点:逻辑回归(LogisticRegression)模型形式:关键点:参数估计与评估:3.python浅拷贝及深拷贝浅拷贝(Shal
Java企业面试题3
马龙强_
java
1.break和continue的作用(智*图)break:用于完全退出一个循环(如for,while)或一个switch语句。当在循环体内遇到break语句时,程序会立即跳出当前循环体,继续执行循环之后的代码。continue:用于跳过当前循环体中剩余的部分,并开始下一次循环。如果是在for循环中使用continue,则会直接进行条件判断以决定是否执行下一轮循环。2.if分支语句和switch分
Java面试题精选:消息队列(二)
芒果不是芒
Java面试题精选 java kafka
一、Kafka的特性1.消息持久化:消息存储在磁盘,所以消息不会丢失2.高吞吐量:可以轻松实现单机百万级别的并发3.扩展性:扩展性强,还是动态扩展4.多客户端支持:支持多种语言(Java、C、C++、GO、)5.KafkaStreams(一个天生的流处理):在双十一或者销售大屏就会用到这种流处理。使用KafkaStreams可以快速的把销售额统计出来6.安全机制:Kafka进行生产或者消费的时候会
2019考研 | 西交大软件工程
笔者阿蓉
本科背景:某北京211学校电子信息工程互联网开发工作两年录取结果:全日制软件工程学院分数:初试350+复试笔试80+面试85+总排名:100+从五月份开始脱产学习,我主要说一下专业课和复试还有我对非全的一些看法。【数学100+】张宇,张宇,张宇。跟着张宇学习,入门视频刷一遍,真题刷两遍,错题刷三遍。书刷N多遍。从视频开始学习,是最快的学习方法。5-7月份把主要是数学学好,8-9月份开始给自己每个周
Day_11
ROC_bird..
算法
面试题16.15.珠玑妙算-力扣(LeetCode)/***Note:Thereturnedarraymustbemalloced,assumecallercallsfree().*///下标和对应位置的值都一样,answer[0]+1,对应位置的值猜对了,但是下标不对,answer[1]+1int*masterMind(char*solution,char*guess,int*returnSiz
字节二面
Redstone Monstrosity
前端 面试
1.假设你是正在面试前端开发工程师的候选人,面试官让你详细说出你上一段实习过程的收获和感悟。在上一段实习过程中,我获得了宝贵的实践经验和深刻的行业洞察,以下是我的主要收获和感悟:一、专业技能提升框架应用熟练度:通过实际项目,我深入掌握了React、Vue等前端框架的使用,不仅提升了编码效率,还学会了如何根据项目需求选择合适的框架。问题解决能力:在实习期间,我遇到了许多预料之外的技术难题。通过查阅文
【从问题中去学习k8s】k8s中的常见面试题(夯实理论基础)(二十八)
向往风的男子
k8s 学习 kubernetes 容器
本站以分享各种运维经验和运维所需要的技能为主《python零基础入门》:python零基础入门学习《python运维脚本》:python运维脚本实践《shell》:shell学习《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战《k8》从问题中去学习k8s《docker学习》暂未更新《ceph学习》ceph日常问题解决分享《日志收集》ELK+各种中间件《运维日常》
Java -jar 如何在后台运行项目
vincent_hahaha
撸了今年阿里、头条和美团的面试,我有一个重要发现.......>>>说到运行jar包通常我们都会以下面的方式运行:java-jarspringboot-0.0.1-SNAPSHOT.jar这样运行的话会有一个问题,就是我们一关闭当前窗口就会停止运行项目,要想解决这个问题,就需要在后台运行。nohupjava-jarbabyshark-0.0.1-SNAPSHOT.jar >log.file 2>&
【Death Note】网吧战神之7天爆肝渗透测试死亡笔记_sqlmap在默认情况下除了使用 char() 函数防止出现单引号
2401_84561374
程序员 笔记
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。需要这份系统化的资料的朋友,可以戳这里获取一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!特殊服务端口2181zookeeper服务未授权访问
【Kubernetes】常见面试题汇总(十一)
summer.335
Kubernetes kubernetes 容器 云原生
目录33.简述Kubernetes外部如何访问集群内的服务?34.简述Kubernetesingress?35.简述Kubernetes镜像的下载策略?33.简述Kubernetes外部如何访问集群内的服务?(1)对于Kubernetes,集群外的客户端默认情况,无法通过Pod的IP地址或者Service的虚拟IP地址:虚拟端口号进行访问。(2)通常可以通过以下方式进行访问Kubernetes集群
华雁智科前端面试题
因为奋斗超太帅啦
前端笔试面试问题整理 javascript 开发语言 ecmascript
1.var变量的提升题目:vara=1functionfun(){console.log(b)varb=2}fun()console.log(a)正确输出结果:undefined、1答错了,给一个大嘴巴子,错误答案输出结果为:2,1此题主要考察var定义的变量,作用域提升的问题,相当于varaa=1functionfun(){varbconsole.log(b)b=2}fun()console.l
保研日记--哈工大威海计算机学院
faaarii
保研
传送门保研日记--中国海洋大学计算机系保研日记--中国人民大学信息学院(人大信院)保研日记--北京交通大学计算机学院保研材料模板(自我介绍,个人简历,个人陈述,推荐信)哈工大威海计算机学院这次夏令营给我的感觉非常的朴素,哈哈哈哈营员就有四个群,985/211、双一流、双非、四非??没有宣讲会、见面会,在面试开始之前放了一个简短的宣传片。(傲娇,绝对不整那些花里胡哨的哈哈哈)面试有三组老师,分别问你
自动化测试工程师面试,常问的问题有哪些?
自动化测试 老司机
软件测试 测试工程师 自动化测试 面试 职场和发展 软件测试 selenium 测试工具 android 测试工程师
自动化测试工程师面试是非常重要的环节,面试官会通过一系列的问题来评估候选人的技能和经验。下面是一些常见的问题,以及如何详细而规范地回答这些问题的建议。1.请介绍一下你的自动化测试经验。回答这个问题时,可以从项目经验、使用的自动化测试工具、编写的测试脚本等方面来介绍自己的经验。重点强调你在自动化测试领域的技能和擅长的领域。2.你在自动化测试中使用的编程语言是什么?为什么选择这种语言?回答这个问题时,
中年女人的危机
南溪_e428
今天看了篇文章,就是说女人过了四十,还要换工作吗?确实是现实,有很多的单位公司在面试的时候,都会问你有几个孩子,还会打算生二胎吗?有的还会直接要求你说,希望入职的最近一年里,不要生孩子,单位也有单位的难处啊!尽管说,面试官也同样会是女人,这个话题是不可避免的啊!后来有的单位就变得聪明了,不在招收年龄偏大的员工,一般都是招年龄相对小的,而且还是以男性员工为主的,除非没办法才会招极个别的女工,这就是现
前端CSS面试常见题
剑亦未配妥
前端面试 前端 css 面试
边界塌陷盒模型有两种:W3C盒模型和IE盒模型,区别在于宽度是否包含边框定义:同时给兄弟/父子盒模型设置上下边距,理论上边距值是两者之和,实际上不是注意:浮动和定位不会产生边界塌陷;只有块级元素垂直方向才会产生margin合并margin计算方案margin同为正负:取绝对值大的值一正一负:求和父子元素边界塌陷解决父元素可以通过调整padding处理;设置overflowhidden,触发BFC子
2024年最全Flutter如何和Native通信-Android视角,Electron开发Android界面
2401_84544531
程序员 android 面试 学习
总结【Android详细知识点思维脑图(技能树)】其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。虽然Android没有前几年火热了,已经过去了会四大组件就能找到高薪职位的时代了。这只能说明Android中级以下的岗位饱和了,现在高级工程师还是比较缺少的,很多高级职位给的薪
音视频知识图谱 2022.04
关键帧Keyframe
前些时间,我在知识星球上创建了一个音视频技术社群:关键帧的音视频开发圈,在这里群友们会一起做一些打卡任务。比如:周期性地整理音视频相关的面试题,汇集一份音视频面试题集锦,你可以看看《音视频面试题集锦2022.04》。再比如:循序渐进地归纳总结音视频技术知识,绘制一幅音视频知识图谱。下面是2022.04月知识图谱新增的内容节选:1)图谱路径:**采集/音频采集/声音三要素/响度******主观计量响
【华为OD技术面】 - 考到的Lettcode手撕算法代码真题目录
算法大师
华为od 算法
华为OD面试真题精选专栏:华为OD面试真题精选目录:2024华为OD面试手撕代码真题目录以及八股文真题目录文章目录华为OD面试真题精选目录目录题目备注1052.爱生气的书店老板2024-4LCR058.我的日程安排表I技术二面
Java面试笔记记录6
今天背八股了吗
java 面试 笔记
1.Spring是什么?特性?有哪些模块?Spring是一个轻量级、非入侵式的控制反转Ioc和面向切面AOP的框架。特性:1.Ioc和DISpring的核心就是一个大的工厂容器,可以维护所有对象的创建和依赖关系,Spring工厂用于生成Bean,并且管理Bean的生命周期,实现高内聚低耦合的设计理念。2.AOP编程Spring提供面向切面编程,可以方便实现对程序进行权限拦截、运行监控等切面功能。3
小米嵌入式面试题目RTOS面试题目 嵌入式面试题目
好家伙VCC
面试 杂谈杂谈 面试 职场和发展
第一章-非RTOSbootloader工作流程MCU启动流程通信协议,SPIIICMCU怎么选型,STM32F1和F4有什么区别外部RAM和内部RAM区别,怎么分配外部总线和内部总线区别MCU上的固件,数据是怎么分配的MCU启动流程IAP是怎么升级的,突然断电怎么办挑了麦轮项目(因为大疆RM也是麦轮,面试官看样子比较感兴趣)为什么用的CAN总线你说一下spi和i2c和UART的各自的工作方式优缺点
[面试高频问题]关于多线程的单例模式
朱玥玥要每天学习
java 单例模式 开发语言
单例模式什么是设计模式?设计模式可以看做为框架或者是围棋中的”棋谱”,红方当头炮,黑方马来跳.根据一些固定的套路下,能保证局势不会吃亏.在日常的程序设计中,往往有许多业务场景,根据这些场景,大佬们总结出了一些固定的套路.按照这个套路来实现代码,也不会吃亏.什么是单例模式,保证某类在程序中只有一个实例,而不会创建多份实例.单例模式具体的实现方式:可分为”懒汉模式”,”饿汉模式”.饿汉模式类加载的同时
题解 | #完全数计算#不知道为什么没超时的暴力解法
huaxinjiayou
java
兄弟们,坚持就是胜利啊,找工作从去年秋招就开始找,到五月底才收到第一个offer星环的,然后六月初t咋六月了还有面试啊,有兄弟了解这个部门吗面完了家人们,纯纯kpi啊,上来就是一道题是打印多个字符串的华为接头人话术指南:欲投华为,必看此贴!引流华为招聘提前批【奖】这个夏天,和牛牛一起打卡刷题~Java面试实战项目25届本科找暑期实习的历程飞猪旅行运营岗面经百度视觉算法一面面经感谢牛友们,腾子pcg
【Java】面试题31:栈的压入,弹出序列
小小核桃
剑指offer java版
~~题目:~~输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列{1,2,3,4,5}是某栈的压栈序列,序列{4,5,3,2,1}是该压栈序列对应的一个弹出序列,但{4,3,5,1,2}就不可能是该栈序列的弹出序列。思路:首先借助一个辅助栈,把输入的第一个序列中的数字依次压入该辅助栈,并按照第二个序列的顺序依次从该栈中弹出数
java类加载顺序
3213213333332132
java
package com.demo;
/**
* @Description 类加载顺序
* @author FuJianyong
* 2015-2-6上午11:21:37
*/
public class ClassLoaderSequence {
String s1 = "成员属性";
static String s2 = "
Hibernate与mybitas的比较
BlueSkator
sql Hibernate 框架 ibatis orm
第一章 Hibernate与MyBatis
Hibernate 是当前最流行的O/R mapping框架,它出身于sf.net,现在已经成为Jboss的一部分。 Mybatis 是另外一种优秀的O/R mapping框架。目前属于apache的一个子项目。
MyBatis 参考资料官网:http:
php多维数组排序以及实际工作中的应用
dcj3sjt126com
PHP usort uasort
自定义排序函数返回false或负数意味着第一个参数应该排在第二个参数的前面, 正数或true反之, 0相等usort不保存键名uasort 键名会保存下来uksort 排序是对键名进行的
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8&q
DOM改变字体大小
周华华
前端
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml&q
c3p0的配置
g21121
c3p0
c3p0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。c3p0的下载地址是:http://sourceforge.net/projects/c3p0/这里可以下载到c3p0最新版本。
以在spring中配置dataSource为例:
<!-- spring加载资源文件 -->
<bean name="prope
Java获取工程路径的几种方法
510888780
java
第一种:
File f = new File(this.getClass().getResource("/").getPath());
System.out.println(f);
结果:
C:\Documents%20and%20Settings\Administrator\workspace\projectName\bin
获取当前类的所在工程路径;
如果不加“
在类Unix系统下实现SSH免密码登录服务器
Harry642
免密 ssh
1.客户机
(1)执行ssh-keygen -t rsa -C "
[email protected] "生成公钥,xxx为自定义大email地址
(2)执行scp ~/.ssh/id_rsa.pub root@xxxxxxxxx:/tmp将公钥拷贝到服务器上,xxx为服务器地址
(3)执行cat
Java新手入门的30个基本概念一
aijuans
java java 入门 新手
在我们学习Java的过程中,掌握其中的基本概念对我们的学习无论是J2SE,J2EE,J2ME都是很重要的,J2SE是Java的基础,所以有必要对其中的基本概念做以归纳,以便大家在以后的学习过程中更好的理解java的精髓,在此我总结了30条基本的概念。 Java概述: 目前Java主要应用于中间件的开发(middleware)---处理客户机于服务器之间的通信技术,早期的实践证明,Java不适合
Memcached for windows 简单介绍
antlove
java Web windows cache memcached
1. 安装memcached server
a. 下载memcached-1.2.6-win32-bin.zip
b. 解压缩,dos 窗口切换到 memcached.exe所在目录,运行memcached.exe -d install
c.启动memcached Server,直接在dos窗口键入 net start "memcached Server&quo
数据库对象的视图和索引
百合不是茶
索引 oeacle数据库 视图
视图
视图是从一个表或视图导出的表,也可以是从多个表或视图导出的表。视图是一个虚表,数据库不对视图所对应的数据进行实际存储,只存储视图的定义,对视图的数据进行操作时,只能将字段定义为视图,不能将具体的数据定义为视图
为什么oracle需要视图;
&
Mockito(一) --入门篇
bijian1013
持续集成 mockito 单元测试
Mockito是一个针对Java的mocking框架,它与EasyMock和jMock很相似,但是通过在执行后校验什么已经被调用,它消除了对期望 行为(expectations)的需要。其它的mocking库需要你在执行前记录期望行为(expectations),而这导致了丑陋的初始化代码。
&nb
精通Oracle10编程SQL(5)SQL函数
bijian1013
oracle 数据库 plsql
/*
* SQL函数
*/
--数字函数
--ABS(n):返回数字n的绝对值
declare
v_abs number(6,2);
begin
v_abs:=abs(&no);
dbms_output.put_line('绝对值:'||v_abs);
end;
--ACOS(n):返回数字n的反余弦值,输入值的范围是-1~1,输出值的单位为弧度
【Log4j一】Log4j总体介绍
bit1129
log4j
Log4j组件:Logger、Appender、Layout
Log4j核心包含三个组件:logger、appender和layout。这三个组件协作提供日志功能:
日志的输出目标
日志的输出格式
日志的输出级别(是否抑制日志的输出)
logger继承特性
A logger is said to be an ancestor of anothe
Java IO笔记
白糖_
java
public static void main(String[] args) throws IOException {
//输入流
InputStream in = Test.class.getResourceAsStream("/test");
InputStreamReader isr = new InputStreamReader(in);
Bu
Docker 监控
ronin47
docker监控
目前项目内部署了docker,于是涉及到关于监控的事情,参考一些经典实例以及一些自己的想法,总结一下思路。 1、关于监控的内容 监控宿主机本身
监控宿主机本身还是比较简单的,同其他服务器监控类似,对cpu、network、io、disk等做通用的检查,这里不再细说。
额外的,因为是docker的
java-顺时针打印图形
bylijinnan
java
一个画图程序 要求打印出:
1.int i=5;
2.1 2 3 4 5
3.16 17 18 19 6
4.15 24 25 20 7
5.14 23 22 21 8
6.13 12 11 10 9
7.
8.int i=6
9.1 2 3 4 5 6
10.20 21 22 23 24 7
11.19
关于iReport汉化版强制使用英文的配置方法
Kai_Ge
iReport汉化 英文版
对于那些具有强迫症的工程师来说,软件汉化固然好用,但是汉化不完整却极为头疼,本方法针对iReport汉化不完整的情况,强制使用英文版,方法如下:
在 iReport 安装路径下的 etc/ireport.conf 里增加红色部分启动参数,即可变为英文版。
# ${HOME} will be replaced by user home directory accordin
[并行计算]论宇宙的可计算性
comsci
并行计算
现在我们知道,一个涡旋系统具有并行计算能力.按照自然运动理论,这个系统也同时具有存储能力,同时具备计算和存储能力的系统,在某种条件下一般都会产生意识......
那么,这种概念让我们推论出一个结论
&nb
用OpenGL实现无限循环的coverflow
dai_lm
android coverflow
网上找了很久,都是用Gallery实现的,效果不是很满意,结果发现这个用OpenGL实现的,稍微修改了一下源码,实现了无限循环功能
源码地址:
https://github.com/jackfengji/glcoverflow
public class CoverFlowOpenGL extends GLSurfaceView implements
GLSurfaceV
JAVA数据计算的几个解决方案1
datamachine
java Hibernate 计算
老大丢过来的软件跑了10天,摸到点门道,正好跟以前攒的私房有关联,整理存档。
-----------------------------华丽的分割线-------------------------------------
数据计算层是指介于数据存储和应用程序之间,负责计算数据存储层的数据,并将计算结果返回应用程序的层次。J
&nbs
简单的用户授权系统,利用给user表添加一个字段标识管理员的方式
dcj3sjt126com
yii
怎么创建一个简单的(非 RBAC)用户授权系统
通过查看论坛,我发现这是一个常见的问题,所以我决定写这篇文章。
本文只包括授权系统.假设你已经知道怎么创建身份验证系统(登录)。 数据库
首先在 user 表创建一个新的字段(integer 类型),字段名 'accessLevel',它定义了用户的访问权限 扩展 CWebUser 类
在配置文件(一般为 protecte
未选之路
dcj3sjt126com
诗
作者:罗伯特*费罗斯特
黄色的树林里分出两条路,
可惜我不能同时去涉足,
我在那路口久久伫立,
我向着一条路极目望去,
直到它消失在丛林深处.
但我却选了另外一条路,
它荒草萋萋,十分幽寂;
显得更诱人,更美丽,
虽然在这两条小路上,
都很少留下旅人的足迹.
那天清晨落叶满地,
两条路都未见脚印痕迹.
呵,留下一条路等改日再
Java处理15位身份证变18位
蕃薯耀
18位身份证变15位 15位身份证变18位 身份证转换
15位身份证变18位,18位身份证变15位
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 201
SpringMVC4零配置--应用上下文配置【AppConfig】
hanqunfeng
springmvc4
从spring3.0开始,Spring将JavaConfig整合到核心模块,普通的POJO只需要标注@Configuration注解,就可以成为spring配置类,并通过在方法上标注@Bean注解的方式注入bean。
Xml配置和Java类配置对比如下:
applicationContext-AppConfig.xml
<!-- 激活自动代理功能 参看:
Android中webview跟JAVASCRIPT中的交互
jackyrong
JavaScript html android 脚本
在android的应用程序中,可以直接调用webview中的javascript代码,而webview中的javascript代码,也可以去调用ANDROID应用程序(也就是JAVA部分的代码).下面举例说明之:
1 JAVASCRIPT脚本调用android程序
要在webview中,调用addJavascriptInterface(OBJ,int
8个最佳Web开发资源推荐
lampcy
编程 Web 程序员
Web开发对程序员来说是一项较为复杂的工作,程序员需要快速地满足用户需求。如今很多的在线资源可以给程序员提供帮助,比如指导手册、在线课程和一些参考资料,而且这些资源基本都是免费和适合初学者的。无论你是需要选择一门新的编程语言,或是了解最新的标准,还是需要从其他地方找到一些灵感,我们这里为你整理了一些很好的Web开发资源,帮助你更成功地进行Web开发。
这里列出10个最佳Web开发资源,它们都是受
架构师之面试------jdk的hashMap实现
nannan408
HashMap
1.前言。
如题。
2.详述。
(1)hashMap算法就是数组链表。数组存放的元素是键值对。jdk通过移位算法(其实也就是简单的加乘算法),如下代码来生成数组下标(生成后indexFor一下就成下标了)。
static int hash(int h)
{
h ^= (h >>> 20) ^ (h >>>
html禁止清除input文本输入缓存
Rainbow702
html 缓存 input 输入框 change
多数浏览器默认会缓存input的值,只有使用ctl+F5强制刷新的才可以清除缓存记录。
如果不想让浏览器缓存input的值,有2种方法:
方法一: 在不想使用缓存的input中添加 autocomplete="off";
<input type="text" autocomplete="off" n
POJO和JavaBean的区别和联系
tjmljw
POJO java beans
POJO 和JavaBean是我们常见的两个关键字,一般容易混淆,POJO全称是Plain Ordinary Java Object / Pure Old Java Object,中文可以翻译成:普通Java类,具有一部分getter/setter方法的那种类就可以称作POJO,但是JavaBean则比 POJO复杂很多, Java Bean 是可复用的组件,对 Java Bean 并没有严格的规
java中单例的五种写法
liuxiaoling
java 单例
/**
* 单例模式的五种写法:
* 1、懒汉
* 2、恶汉
* 3、静态内部类
* 4、枚举
* 5、双重校验锁
*/
/**
* 五、 双重校验锁,在当前的内存模型中无效
*/
class LockSingleton
{
private volatile static LockSingleton singleton;
pri