next

Java程序员最新跳槽常见的14个面试题(持更中)

依然范特西╮ 提交于 2020-08-18 08:36:03
跳槽不算频繁,但参加过不少面试(电话面试、face to face面试),面过大/小公司、互联网/传统软件公司,面糊过(眼高手低,缺乏实战经验,挂掉),也面过人,所幸未因失败而气馁. 在此过程中不断查缺补漏,养成了踏实、追本溯源、持续改进的习惯,特此将自己经历过、构思过的一些面试题记录下来. 如果答案有问题,欢迎拍砖讨论,希望能对找工作或者感兴趣的朋友有所帮助,陆续整理中 。 1. synchronized和reentrantlock异同 相同点 : 都实现了多线程同步和内存可见性语义 都是可重入锁 不同点 : 实现机制不同 synchronized通过java对象头锁标记和Monitor对象实现 reentrantlock通过CAS、ASQ(AbstractQueuedSynchronizer)和locksupport(用于阻塞和解除阻塞)实现 synchronized依赖jvm内存模型保证包含共享变量的多线程内存可见性 reentrantlock通过ASQ的volatile state保证包含共享变量的多线程内存可见性 使用方式不同 synchronized可以修饰实例方法(锁住实例对象)、静态方法(锁住类对象)、代码块(显示指定锁对象) reentrantlock显示调用trylock()/lock()方法,需要在finally块中释放锁 功能丰富程度不同

数学建模 matlab 数据的拟合和回归

元气小坏坏 提交于 2020-08-18 08:26:58
根据回归方法中因变量的个数和回归函数的类型: 特殊的回归方式: 逐步回归:回归过程中可以调整变量数的回归方法; Logistic回归:以指数结构函数作为回归模型的回归方法。 一、一元回归 1.一元线性回归 例题: 近10年来,某市社会商品零售总额与职工工资总额(单位:亿元)的数据,请建立社会零售总额与职工工资总额数据的回归模型。 (1)输入数据,画出散点图 (2)采用最小二乘回归 注:相关公式 (3)采用LinearModel.fit函数进行线性回归 m2=LinearModel.fit(x,y) 运行结果: LinearModel.fit输出的内容为典型的线性回归的参数 (4)采用regress函数进行回归 运行结果: b = -23.5493 2.7991 总结: 1.注意自变量需要加偏置项 2.注意X,Y是列向量还是行向量 3.regress函数 [b,bint,r,rint,stats]=regress( Y,X,alpha) 输入有Y(因变量,列向量)、X(与自变量组成的矩阵)和alpha(显著性水平,缺省时默认为0.05)。 输出b为(b0,b1),bint是b0,b1的置信区间;r是残差;rint是残差的置信区间;stats包含4个统计量:决定系数R^2(R为相关系数)、F值、F(1,n-2)分布大于F值得概率p,剩余方差 s ^2。 置信区间 含义:

变异测试工具Pitest(maven配置),并解决无法加载主类问题 INFO : MINION : Error: Could not find or load main class org.

岁酱吖の 提交于 2020-08-18 07:35:14
本地电脑环境 window10 jdk1.8 maven 3.5.4 IDEA 2020.1 首先配置好maven环境 这里面有一些坑,可以看我的另一篇博客,踩过的坑希望大家不要在踩了。 https://blog.csdn.net/ibo123/article/details/108034402 无法加载主类的问题在于你的maven环境没有进行全局配置,请务必配置好全局maven。要不然IDEA会自动加载默认的maven。 1 构建一个简单的maven项目 file -> project -> Maven-> next 填写 Goupid Artifactid -> Next 项目名称和路径根据自己需要填写,最后点击Finish. 2 pom.xml设置 < ? xml version = "1.0" encoding = "UTF-8" ? > < project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns : xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi : schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" > <

生成器与迭代器笔记

空扰寡人 提交于 2020-08-18 07:07:17
生成器与迭代器 生成器generator 定义:在Python中,这种一边循环一边计算的机制,称为生成器:generator。 1.生成器函数 生成器函数 ——本质上就是我们自己写的函数 只要含有yield关键字的函数都是生成器函数,yield不能和return共用且需要写在函数内 def generator(): print(a) yield 1 ret=generator() #生成器函数 : 执行之后会得到一个生成器作为返回值 print(ret) def generator(): print(1) yield 'a' print(2) yield 'b' yield 'c' g = generator() for i in g: print(i) ret = g.__next__() print(ret) ret = g.__next__() print(ret) ret = g.__next__() print(ret) 2.列表推到式与字典推导式 列表推导式 语法[结果,for循环 条件筛选] 需求:要求把列表[0,1,2,3,4,5,6,7,8,9]里的每个值加1 这里可以用列表生成式搞定 lst=[i+1 for i in range(10)] print(lst) 字典推导式 lst=[11,22,33,44] dic={i:lst[i] for i in

海纳百川而来的一篇相当全面的Java NIO教程

时光总嘲笑我的痴心妄想 提交于 2020-08-18 06:43:02
【本文版权归微信公众号"代码艺术"(ID:onblog)所有,若是转载请务必保留本段原创声明,违者必究。若是文章有不足之处,欢迎关注微信公众号私信与我进行交流!】 本文是从网络复制、经过我的整理、开光而来的,而来的,来的,的。 为什么?因为写的太好了~没事打开看看打发打发时间,哈哈~ 零、NIO包 NIO 类包含在一个叫作 java.nio 包的包中。要了解NIO子系统不会取代 java.io 包中可用的基于流的I/O类,如果有对 java.io 基于流的I/O的如何工作有所有了解,这有助于您学习和使用 NIO 中的知识内容。 NIO 类包含在以下包中: 包名称 使用/目的 java.nio 它是NIO系统的顶级包,NIO系统封装了各种类型的缓冲区。 java.nio.charset 它封装了字符集,并且还支持分别将字符转换为字节和字节到编码器和解码器的操作。 java.nio.charset.spi 它支持字符集服务提供者 java.nio.channels 它支持通道,这些通道本质上是打开I/O连接。 java.nio.channels.spi 它支持频道的服务提供者 java.nio.file 它提供对文件的支持 java.nio.file.spi 它支持文件系统的服务提供者 java.nio.file.attribute 它提供对文件属性的支持 一、Java NIO

Loadruner 之 controller 负载生成器与场景运行——性能测试

谁说我不能喝 提交于 2020-08-18 06:36:13
性能基于功能测试,只有系统功能稳定了,性能测试才有意义。性能测试主要包含两个特性:时间和资源。时间是系统处理客户请求的时间,主要是用响应时间和吞吐量来衡量,而资源则是指测试过程中系统资源消耗的情况,例如:Cpu、内存、磁盘等。 性能测试方法:性能测试(测试环境、目标确定的情况下,测试系统还能宣称)、配置测试(系统有一定的测试基础时,通过修改环境配置,例如服务器参数等,对比之前的测试结果进行优化)、并发测试(多个用户并发使用系统,是否死锁、内存泄漏等)、负载测试(向系统添加压力,观察系统资源消耗情况)、压力测试(系统承受一定的压力下,测试系统是否会出现错误。系统压力包括cpu、内存、磁盘、网络等方面的压力,利用工具占用系统资源、增加并发量等)、稳定性测试(系统承受一定压力的情况下,运行一段时间,测试系统是否平衡运行) Loadrunner 主要组件:virtual user generator (捕捉用户业务流程、自动生成脚本)、Controller(设计场景,主要包括设置不同脚本的虚拟用户数量、迭代次数、执行时间等)、Load Generator (模拟用户向服务器发送请求)、Analysis(分析测试结果,辅助测试人员进行测试分析)。 一、录制脚本   打开 virtual user generator,创建新的项目   1、开始录制,利用自带的订票系统为例。录制注册用户

PHP 内核:foreach 是如何工作的(二)

徘徊边缘 提交于 2020-08-18 06:34:31
PHP 内核:foreach 是如何工作的(一) PHP 5 内部数组指针和散列指针 PHP 5 中的数组有一个专用的 “内部数组指针”(IAP),它适当地支持修改:每当删除一个元素时,都会检查 IAP 是否指向该元素。 如果是,则转发到下一个元素。 虽然 foreach 确实使用了 IAP,但还有一个复杂因素:只有一个 IAP,但是一个数组可以是多个 foreach 循环的一部分: // 在这里使用by-ref迭代来确保它真的 // 两个循环中的相同数组而不是副本 foreach ($arr as &$v1) { foreach ($arr as &$v) { // ... } } 为了支持只有一个内部数组指针的两个同时循环,foreach 执行以下 shenanigans:在执行循环体之前,foreach 将备份指向当前元素及其散列的指针到每个 foreachHashPointer。循环体运行后,如果 IAP 仍然存在,IAP 将被设置回该元素。 但是,如果元素已被删除,我们将只在 IAP 当前所在的位置使用。这个计划基本上是可行的,但是你可以从中获得很多奇怪的情况,其中一些我将在下面演示。 数组复制 IAP 是数组的一个可见特性 (通过 current 系列函数公开),因此 IAP 计数的更改是在写时复制语义下的修改。不幸的是,这意味着 foreach

如果没有这些算法面试题,字节跳动面试不可能这么顺利

眉间皱痕 提交于 2020-08-18 05:43:52
1、写一个字符串 反转函数。 方法一:(利用递归实现) public static String reverse1 (String s) { int length = s.length(); if (length <= 1 ) return s; String left = s.substring( 0 , length / 2 ); String right = s.substring(length / 2 , length); return reverse1(right) + reverse1(left); //调用递归 } 方法二:(拼接字符串) public static String reverse2 (String s) { int length = s.length(); String reverse = "" ; for ( int i = 0 ; i < length; i++) reverse = s.charAt(i) + reverse; return reverse; } 方法三:(利用数组,倒序输出) public static String reverse3 (String s) { char [] array = s.toCharArray(); String reverse = "" ; for ( int i = array.length - 1

MySQL事务隔离级别中可重复读与幻读

懵懂的女人 提交于 2020-08-18 03:50:42
每次谈到数据库的事务隔离级别,大家一定会看到这张表. 其中, 可重复读 这个隔离级别,有效地防止了脏读和不可重复读,但仍然可能发生幻读, 可能 发生幻读就表示 可重复读 这个隔离级别防不住幻读吗? 我不管从数据库方面的教科书还是一些网络教程上,经常看到RR级别是可以重复读的,但是无法解决幻读,只有可串行化(Serializable)才能解决幻读,这个说法是否正确呢? 在这篇文章中,我将重点围绕MySQL中 可重复读(Repeatable read)能防住幻读吗? 这一问题展开讨论,相信看完这篇文章后,你一定会对事务隔离级别有新的认识. 我们的数据库中有如下结构和数据的 Users 表,下文中我们将对这张表进行操作, 长文预警,读完此篇文章,大概需要您二十分钟. 什么是幻读? 在说幻读之前,我们要先来了解脏读和不可重复读. 脏读 当一个事务读取到另外一个事务修改但未提交的数据时,就可能发生脏读。 在我们的例子中,事务2修改了一行,但是没有提交,事务1读了这个没有提交的数据。现在如果事务2回滚了刚才的修改或者做了另外的修改的话,事务1中查到的数据就是不正确的了,所以这条数据就是脏读。 不可重复读 “不可重复读”现象发生在当执行SELECT 操作时没有获得读锁或者SELECT操作执行完后马上释放了读锁; 另外一个事务对数据进行了更新,读到了不同的结果. 在这个例子中,事务2提交成功

[转].Net Core Web应用发布至IIS后报“An error occurred while starting the application”错误

爷,独闯天下 提交于 2020-08-18 03:07:01
本文转自: http://www.cnblogs.com/TomGui/p/6438686.html An error occurred while starting the application. .NET Core X64 v4.1.1.0 | Microsoft.AspNetCore.Hosting version 1.1.0-rtm-22752 | Microsoft Windows 6.3.9600 报这个错,一脸懵逼,环境都按官方文档配置正确了,怎么办? 1.修改web.config文件,stdoutLogEnabled改为true,如下: < aspNetCore processPath ="dotnet" arguments =".\Dialysis.WebApi.dll" stdoutLogEnabled ="true" stdoutLogFile =".\logs\stdout" /> 补充一点,这个文件是在发布之后的文件里,如果没有单独配置发布文件。 就在\bin\Debug\netcoreapp1.1 里面,在根目录下有web.config文件。 注: 不在源文件的根目录下面。 另外,需 要手动建 这个 logs 文件夹 ,因为iis不会给你自动创建。 我出这个问题的原因也是因为项目在startup的时候没有读到 nlog.config这个文件导致的错误。