17.09.08京东笔试查缺补漏

对于格式,节约时间,不拘小节,看官自阅:

1、sql:between and是包括等号的,即闭区间;not between and 就是开区间了。

2、给一组结点大小,构建平衡二叉树,问最后的树状态:

注意:区分是每次插入都要进行平衡,还是全部插入后进行调整。

3、某系统中有 3 个并发进程,都需要同类资源 4 个,试问该系统不会发生死锁的最少数是 3进程*(4-1)资源+1=10个:

每个进程三个资源,另外一个额外资源可保证至少有一个进程可以运行,依次交替。。。。

4、链接:https://www.nowcoder.com/questionTerminal/005186ffa66f4db59d08d9a14190fe5d
来源:牛客网

设有n个进程共享一个互斥段,对于如下两种情况使用信号量,信号量的值的变化怎样?

(1) 如果每次只允许一个进程进入互斥段。
(2) 如果每次最多允许m个进程(m<n)同时进入互斥段。

(1)互斥信号量初值为   ,变化范围为[   -n     l , 1  ]。
(2) 互斥信号量初值为   ,变化范围为[   -n     m , m  ]。

10个并发进程使用同一个共享变量,如果最多允许4个进程同时进入其临界区,则互斥信号量的变化范围应是()。

  • 4,3,2,1,0
  • 4,3,2,1,0,……,-4
  • 4,3,2,1,0,-1,……,-5
  • 4,3,2,1,0,-1,……,-6
5、OS进程不能从等待到运行(即不能wait->run)
6、<T extends A>要比<? extends A> 方便的多,这个T是一个A或者A的子类上界通配符,可以说是闭区间,不要被extends迷惑。
7、观察内存使用问题,free是很好用的一个命令。
total:表示物理内存总量(total = used + free)
used:表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。
free:未被分配的内存。
shared:共享内存,一般系统不会用到,这里也不讨论。
buffers:系统分配但未被使用的buffers 数量。
cached:系统分配但未被使用的cache 数量。

8、sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,它一次处理一行内容,可以将数据行进行替换、删除、新增、选取等特定工作:
 删除某行
     [root@localhost ruby# sed '1d' ab              #删除第一行 
     [root@localhost ruby] # sed '$d' ab              #删除最后一行
     [root@localhost ruby] # sed '1,2d' ab           #删除第一行到第二行
     [root@localhost ruby] # sed '2,$d' ab           #删除第二行到最后一行

替换一行中的某部分
  格式:sed 's/要替换的字符串/新的字符串/g'   (要替换的字符串可以用正则表达式)
     [root@localhost ruby] # sed -n '/ruby/p' ab | sed 's/ruby/bird/g'    #替换ruby为bird
   [root@localhost ruby] # sed -n '/ruby/p' ab | sed 's/ruby//g'        #删除ruby

     插入
     [root@localhost ruby] # sed -i '$a bye' ab         #在文件ab中最后一行直接输入"bye"

9、 衡量处理器和I/O利用率的方法是使用 iostat 命令。
第一部分包含了CPU利用率报告
  • %user : 显示了在执行用户(应用)层时的CPU利用率
  • %nice : 显示了在以nice优先级运行用户层的CPU利用率
  • %system : 显示了在执行系统(内核)层时的CPU利用率
  • %iowait : 显示了CPU在I/O请求挂起时空闲时间的百分比
  • %steal : 显示了当hypervisor正服务于另外一个虚拟处理器时无意识地等待虚拟CPU所占有的时间百分比。
  • %idle : 显示了CPU在I/O没有挂起请求时空闲时间的百分比
第二部分包含了设备利用率报告
  • Device : 列出的/dev 目录下的设备/分区名称
  • tps : 显示每秒传输给设备的数量。更高的tps意味着处理器更忙。
  • Blk_read/s : 显示了每秒从设备上读取的块的数量(KB,MB)
  • Blk_wrtn/s : 显示了每秒写入设备上块的数量(KB,MB)
  • Blk_read : 显示所有已读取的块
  • Blk_wrtn : 显示所有已写入的块
10、jmap命令可以获得运行中的jvm的堆的快照,从而可以离线分析堆,以检查内存泄漏,检查一些严重影响性能的大对象的创建,检查系统中什么对象最多,各种对象所占内存的大小等等
11、 jstack用于打印出给定的java进程ID、或core file、或远程调试服务的Java堆栈信息

线程分析:

一般情况下,通过jstack输出的线程信息主要包括:jvm自身线程、用户线程等。其中jvm线程会在jvm启动时就会存在。对于用户线程则是在用户访问时才会生成。

查看进程PID为3036中

nid为0xb46的线程信息。

命令:

jstack -l 3036

12、 unix系统里的ps命令,这个命令主要是用来显示当前系统的进程情况,有哪些进程,及其 id。 jps 也是一样,它的作用是显示当前系统的java进程情况,及其id号。我们可以通过它来查看我们到底启动了几个java进程(因为每一个java程序都会独占一个java虚拟机实例),和他们的进程号(为下面几个程序做准备),并可通过opt来查看这些进程的详细启动参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值