面试

java面试题之Thread的run()和start()方法有什么区别

谁说我不能喝 提交于 2020-12-17 07:58:17
run()方法:   是在主线程中执行方法,和调用普通方法一样;(按顺序执行,同步执行) start()方法:   是创建了新的线程,在新的线程中执行;(异步执行) public class App { public static void main( String[] args ){ Thread thread = new Thread(){ public void run(){ test2(); } }; // thread.start(); // 会按照顺序去执行线程,运行结果:test1;test2 thread.run(); // 只要cpu有空闲的线程就可以运行该线程 ,运行结果:test2;test1 System.out.println("test1" ); } static void test2(){ System.out.println( "test2" ); } } 来源: oschina 链接: https://my.oschina.net/u/4299463/blog/3751619

PHP面试常考内容之面向对象(2)

放肆的年华 提交于 2020-12-17 07:52:47
PHP面试专栏正式起更,每周一、三、五更新,提供最好最优质的PHP面试内容。 继上一篇“ PHP面试常考内容之面向对象(1) ”发表后,今天更新(2),需要(1)的可以直接点击文字进行跳转获取。 整个面向对象文章的结构涉及的内容模块有: 一、面向对象与面向过程有什么区别? 二、面向对象有什么特征? 三、什么是构造函数和析构函数? 四、面向对象的作用域范围有哪几种? 五、PHP 中魔术方法有哪些? 六、什么是对象克隆? 七、this、self和parent的区别是什么? 八、抽象类与接口有什么区别与联系? 九、PHP面向对象的常考面试题讲解 关于PHP面向对象的内容将会被分为三篇文章进行讲解完整块内容,第一篇主要讲解一到四点内容,第二篇主要讲解五到八的内容,第三篇围绕第九点进行讲解。 以下正文的内容都来自 《PHP程序员面试笔试宝典》 书籍,如果转载请保留出处: 五、PHP种魔术方法有哪些? 在PHP中,把所有以__(两个下画线)开头的类方法保留为魔术方法。所以在定义类方法时,不建议使用 __ 作为方法的前缀。下面分别介绍每个魔术方法的作用。 1.__get、__set、__isset、__unset 这四个方法是为在类和它们的父类中没有声明的属性而设计的。 1)在访问类属性的时候,若属性可以访问,则直接返回;若不可以被访问,则调用__get 函数。 方法签名为:public

记录我的 python 学习历程-Day06 is id == / 代码块 / 集合 / 深浅拷贝

旧城冷巷雨未停 提交于 2020-12-17 04:22:58
一、is == id 用法   在Python中,id是内存地址, 你只要创建一个数据(对象)那么就会在内存中开辟一个空间,将这个数据临时加载到内存中,这个空间有一个唯一标识,就好比是身份证号,标识这个空间的叫做内存地址,也就是这个数据(对象)的id,那么你可以利用id()去获取这个数据的内存地址: name = 'Dylan' print(id(name)) # 4319709032 ​ == 是比较两边的数值是否相等,其反回的结果是 True 或 False。 ​ is 是比较两边的内存地址是否相等,如果内存地址相等,那么两边所指向是同一个内存地址。其反回的结果是 True 或 False。 name = ['Dylan'] name2 = ['Dylan'] print(name is name2) # False print(name == name2) # True print(id(name)) # 4387384328 print(id(name2)) # 4387382920 # 这里表示:name name2数值是一样的,但却不是同一个内存地址。 ​ 所以:如果内存地址相同,那么值肯定相同,但是如果值相同,内存地址不一定相同。 二、代码块 Python 程序是由代码块构造的,块是一个 python 程序的文本,他是作为一个单元执行的。 **代码块:**一个模块

爆赞!Github标星78K的3000页MySQL笔记已开源

依然范特西╮ 提交于 2020-12-17 03:39:49
前言 说起 MySQL 的查询优化,相信大家收藏了一堆: 不能使用SELECT *; 不使用NULL字段; 合理创建索引; 为字段选择合适的数据类型..... 你是否真的理解这些优化技巧?是否理解其背后的工作原理?你对MySQL了解多少?如果你可以熟练的写出SQL,那么在各个客户端里玩的游刃有余也是很容易的。 前段时间,跳槽到大厂的一位朋友,给我分享了一批MySQL的学习资料大集合,全是干货,都是他在工作中遇到的以及用到的。主要包括: MySQL面试题、MySQL从入门到精通、MySQL基础到高级到调优笔记、MySQL知识总结、MySQL性能调优与架构设计解析文档, 已打包好,文末有免费获取方式。 Part1 MySQL高频面试题及答案解析 进了互联网公司,整天也就是搬砖,等到了面试的时候,发现数据库方面,忘得一塌糊涂,抽时间整理了一些数据库方面的题。 下面是在面试中经常遇见的MySQL面试题清单(都是真材实料,用心整理): 答案解析: Part2 重学MySQL:从入门到精通 主要包括 MySQL的安装与配置 、 数据库的创建 、 数据表的创建 、 数据类型和运算符 、 MySQL函数 、 查询数据 、 数据表的操作 (插入、更新与删除数据)、 索引 、 存储过程和函数 、 视图 、 触发器 、 用户管理 、 数据备份与恢复 、 日志以及性能优化 等

我和大厂Offer有个约会之padding-top的百分比值参考对象竟是父级元素的宽度

≯℡__Kan透↙ 提交于 2020-12-17 03:30:20
引言 书写页面样式与布局是前端工程师 Coding 中必不可少的一项工作,在定义页面元素的样式时, padding 属性也是经常被使用到的。 padding 属性用于设置元素的内边距,其值可以是 length 、 inherit ,当然也可以是 百分比 。 今天为什么会聊到 padding-top 设置百分比时的参考对象这个话题呢,这还要从一道不那么正经的面试题说起~ 一道不那么正经的css布局面试题 在对面,一本正经的面试官和蔼可亲的说道:我们来道简单的面试题,写写代码吧。你一脸微笑的说道:好哒。 题目须知: 页面中有一个元素A,请实现以下需求: 元素A在页面内水平、垂直居中; 元素A距离页面左右的间距为10px,元素A的宽度随页面宽度变大而变大; 设置元素A的高度始终为宽度的一半; 只要是对CSS了解的一些的同学,实现1和2都是非常简单的,而且方式也是多种多样的。那如何能设置让元素A的高度始终为宽度的一半呢?上代码~ 页面布局:要考虑DOM的结构和CSS的样式 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title>

浅谈Linux内存管理那些事儿

早过忘川 提交于 2020-12-17 02:43:03
1 前言 内存管理是Linux内核中非常重要的部分,今天和大家一起学习一下。 当我们要学习一个新知识点时,比较好的过程是先理解出现这个技术点的 背景原因 ,同期其他解决方案,新 技术点解决了什么问题以及它存在哪些不足和 改进之处 ,这样整个学习过程是 闭环 的,个人觉得这是个很好的学习思路。 凡事都是相通的 ,计算机学科的一些问题在现实生活中都可以找到原型,所以我觉得计算机科学家大部分都是善于观察生活并总结归纳的。 人类社会就是一台复杂的机器,其中充满了机制和规则,所以有时候跳进代码海洋不如先回到生活之中, 寻找原型再探究代码 ,可能理解会更深刻。 linux内存管理 卷帙浩繁 ,本文只能 层层递进 地带你领略 冰山轮廓 ,通过本文你将了解到以下内容: 为什么需要管理内存 linux段页管理机制 内存碎片的产生机理 伙伴系统的基本原理 伙伴系统的优势和不足 slab分配器的基本原理 2 为什么需要管理内存 老子的著名观点是无为而治,简单说就是不过多干预而充分依靠自觉就可以有条不紊地运作,理想是美好的,现实是残酷的。 在linux系统中如果以一种原始简单的方式管理内存是存在一些问题的,我们来看几个场景。 2.1 内存管理的问题 进程空间隔离问题 假如现在有ABC三个进程运行在linux的内存空间,设定os给进程A分配的地址空间是0-20M 进程B地址空间30-80M

OSChina 周四乱弹 —— 老板砸碎了你的狗粮碗

纵饮孤独 提交于 2020-12-17 01:29:36
Osc乱弹歌单(2020)请戳( 这里 ) 【今日歌曲】 小小编辑:《你叫阿柴对嘛》- CartonVox 《你叫阿柴对嘛》- CartonVox 手机党少年们想听歌,请使劲儿戳( 这里 ) @ 开源中国123456789 :每天5点醒来等着天亮是什么体验? 就是躺着啊, 多幸福呀, 还是天不冷, 要是天冷的话就能一直睡着了。 @ FalconChen :不知道是冬天太冷的缘故,还是昨晚吃的褪黑素还有药效,或者是感冒服用有复方银翘片的副作用,今天一天都昏昏欲睡,晚上看了一会视频就困得不了,澡也不想洗了,只想一头栽进被窝 那就钻进被窝吧, “只要胆子大,沙耶子放产假。” …… 算了胆子小, 还是不睡了。 @ 鱼鱼呀 :失眠就会头痛啊,今天一天好慢啊 我已经决定了, 上班把睡眠补回来。 老板问的话怎么办? 直接告诉她, 睡觉是来解决单位问题的。 @ 一拳超人 :昨天晚上睡觉做梦,想到了昨天写的代码里的2个BUG的问题出在哪里,今天一看果然是,是不是快疯掉了 睡醒了以后, 发现, “老板砸碎了你的狗粮碗。” 碎觉能找个对象不? @ TuringSnowy : #我要征婚交友# 我就试试(⁎⁍̴̛ᴗ⁍̴̛⁎) 要求对象理科成绩好,理论好,数学好。 这是征婚交友么? 还要理科好的。 @ 开源摸鱼人 :我严重怀疑,你是来找人给你做题的 哈哈哈啊哈哈, 你把我想吐槽的都说了。

记一次 Kafka Producer 性能调优实战

旧时模样 提交于 2020-12-17 01:28:14
最近,遇到某个集群的生产端发送延迟特别高,而且吞吐量上不去,检查集群负载却很低,且集群机器配置非常好,网络带宽也很大,于是使用 Kafka 压测脚本进行了压测。 昨天凌晨,在生产环境进行实战调优,经过不断参数改动,现将生产者相关参数设置为以下配置: linger.ms=50 batch.size=524288 compression.type=lz4 acks=1(用户要求消息至少要发送到分区 leader) max.request.size=5242880 buffer.memory=268435456 在生产环境的一台服务器上,使用以上参数对集群进行生产发送性能压测: 从上图可以看到,使用平均 4k 大小的消息体对集群进行压测, 单个 Producer 平均吞吐量达到 2000MB/s,50w/s+ ! 作为对比,我还是使用同一台服务器,将调优参数去掉,再压一遍: 可以看到,最高的吞吐量也不过 500M/s,最低已经来到 2M/s 了。 虽然说实际客户端环境比压测环境复杂很多,但是使用压测工具已经能够证明,该集群的负载目前现在还远远没有达到瓶颈,且生产端还有待优化。 以上参数调优思想是: 1、buffer.memory=268435456 由于发送端发送频率非常快,加上由于 Spark 客户端频繁断开连接导致生产端 Sender 线程发送延迟增高,这就会造成客户端发送速率 >

Linux运维跳槽面试精华题|第三集

拟墨画扇 提交于 2020-12-17 00:01:14
作者:运维派 来源:http://www.yunweipai.com/archives/27983.html 21、统计ip访问情况,要求分析nginx访问日志,找出访问页面数量在前十位的ip cat access.log | awk ‘{print $1}’ | uniq -c | sort -rn | head -10 22、使用tcpdump监听主机为192.168.1.1,tcp端口为80的数据,同时将输出结果保存输出到tcpdump.log tcpdump ‘host 192.168.1.1 and port 80’ > tcpdump.log 23、如何将本地80 端口的请求转发到8080 端口,当前主机IP 为192.168.2.1 iptables -A PREROUTING -d 192 .168 .2 .1 -p tcp -m tcp -dport 80 -j DNAT-to-destination 192 .168 .2 .1 :8080 24、简述raid0 raid1 raid5 三种工作模式的工作原理及特点 RAID 0 :带区卷,连续以位或字节为单位分割数据,并行读/写于多个磁盘上,因此具有很高的数据传输率 但它没有数据冗余,RAID 0 只是单纯地提高性能,并没有为数据的可靠性提供保证 而且其中的一个磁盘失效将影响到所有数据。因此,RAID 0

Synchronized 的 8 种用法,真是绝了!

自闭症网瘾萝莉.ら 提交于 2020-12-16 20:45:46
你知道的越多,不知道的就越多,业余的像一棵小草! 你来,我们一起精进!你不来,我和你的竞争对手一起精进! 编辑:业余草 blog.csdn.net/x541211190/article/details/106272922 推荐:https://www.xttblog.com/?p=5133 简介 本文将介绍8种同步方法的访问场景,我们来看看这8种情况下,多线程访问同步方法是否还是线程安全的。这些场景是多线程编程中经常遇到的,而且也是面试时高频被问到的问题,所以不管是理论还是实践,这些都是多线程场景必须要掌握的场景。 八种使用场景: 接下来,我们来通过代码实现,分别判断以下场景是不是线程安全的,以及原因是什么。 两个线程同时访问同一个对象的同步方法 两个线程同时访问两个对象的同步方法 两个线程同时访问(一个或两个)对象的静态同步方法 两个线程分别同时访问(一个或两个)对象的同步方法和非同步方法 两个线程访问同一个对象中的同步方法,同步方法又调用一个非同步方法 两个线程同时访问同一个对象的不同的同步方法 两个线程分别同时访问静态synchronized和非静态synchronized方法 同步方法抛出异常后,JVM会自动释放锁的情况 场景一:两个线程同时访问同一个对象的同步方法 分析:这种情况是经典的对象锁中的方法锁,两个线程争夺同一个对象锁,所以会相互等待,是线程安全的。