java面试总结(第一天)

  临近大学毕业,出来试试找工作,学c#出身,半路出家java,做过几个ssh、stringMVC的项目。基础知识不太扎实,勿喷

  以下是我面试过程中遇到的问题

------------------------------------------------------------------------------------------------------------------------------

   1)下文摘自《Java Concurrency in Practice》,请译成中文。  

  “When used properly, threads can reduce development and maintenance costs and improve the performance of complex applications.

  Threads make it easier to model how humans work and interact, by turning asynchronous workflows into mostly sequential ones. 

  Threads are useful in GUI applications for improving the responsiveness of the user interface, and in server applications for improving

  resource utilization and throughput.”

 

  直接懵逼,后来回来上网一查《Java并发编程实践》,豆瓣评分9.3

  都说是一本极好的并发入门书籍,果断淘了一本英文的,据说中文版翻译极烂所以下了一个pdf加以对照。

  还可以练一下英文水平

------------------------------------------------------------------------------------------------------------------------------

  2)请指出下列程序片段的输出结果

  public class test {

    public static void main(String[] args) throws Exception {
    String str = "中国";
    System.out.println(str.getBytes("UTF-8").length);
    System.out.println(str.getBytes("GBK").length);
    System.out.println(str.getBytes("ISO-8859-1").length);
    System.out.println(new String(str.getBytes("ISO-8859-1"), "ISO-8859-1"));
    System.out.println(new String(str.getBytes("UTF-8"), "UTF-8"));  
    System.out.println(new String(str.getBytes("GBK"), "GBK"));
    }

  }

  这也是java程序员经常碰到的乱码问题,下面是输出结果

  -----------  

    6 
    4
    2
    ??
    中国
    中国

  ----------

  ISO8859-1,通常叫做Latin-1。Latin-1包括了书写所有西方欧洲语言不可缺少的附加字符。
  gb2312是简体中文的码
  gbk支持简体中文及繁体中文 big5支持繁体中文
  utf-8支持几乎所有字符

------------------------------------------------------------------------------------------------------------------------------

  3)请使用Java语言实现多线程模式下的生产者与消费者问题。

    这里我就直接把网上的例子链接拿过来吧,因为没他们写的好23333

         1.这篇文章主要介绍了java多线程解决生产者消费者问题的方法,实例分析了

      java采用多线程的方法解决生产者消费者问题的相关技巧,需要的朋友可以参考下

      http://www.jb51.net/article/67018.htm

      2.Java多线程-并发协作(生产者消费者模型)

      http://www.cnblogs.com/linjiqin/p/3217050.html

      3.http://blog.csdn.net/thinkpadshi/article/details/8163751

------------------------------------------------------------------------------------------------------------------------------

  这道题也是copy某位前辈的,如果涉及到版权联系我我会删除,原帖链接(完整版)http://jeromecen1021.blog.163.com/blog/static/18851527120117274624888/

  4)地球人都知道,Java有个东西叫垃圾收集器,它让创建的对象不需要像c/cpp那样delete、free掉,你能不能谈谈,GC是在什么时候 ,对什么东西,做了什么事情?

    一.回答:什么时候?
    1.系统空闲的时候。
        分析:这种回答大约占30%,遇到的话一般我就会准备转向别的话题,譬如算法、譬如SSH看看能否发掘一些他擅长的其他方面。

    2.系统自身决定,不可预测的时间/调用System.gc()的时候。
        分析:这种回答大约占55%,大部分应届生都能回答到这个答案,起码不能算错误是吧,后续应当细分一下到底是语言表述导致答案 太笼统,还是本身就只有这样一个模糊的认识。

    3.能说出新生代、老年代结构,能提出minor gc/full gc
        分析:到了这个层次,基本上能说对GC运作有概念上的了解,譬如看过《深入JVM虚拟机》之类的。这部分不足10%。

    4.能说明minor gc/full gc的触发条件、OOM的触发条件,降低GC的调优的策略。

        分析:列举一些我期望的回答:eden满了minor gc,升到老年代的对象大于老年代剩余空间full gc,或者小于时被
      HandlePromotionFailure参数强制full gc;gc与非gc时间耗时超过了GCTimeRatio的限制引发OOM,调优诸如通过NewRatio
      控制新生代老年代比例,通过 MaxTenuringThreshold控制进入老年前生存次数等……能回答道这个阶段就会给我带来比较高的
      期望了,当然面试的时候正常人都不会记得每个参数的拼写,我自己写这段话的时候也是翻过手册的。回答道这部分的小于2%。
      总结:程序员不能具体控制时间,系统在不可预测的时间调用System.gc()函数的时候;当然可以通过调优,用NewRatio控制n
      ewObject和oldObject的比例,用MaxTenuringThreshold 控制进入oldObject的次数,使得oldObject 存储空间延迟达到full
      gc,从而使得计时器引发gc时间延迟OOM的时间延迟,以延长对象生存期。

------------------------------------------------------------------------------------------------------------------------------

  5)StringBuffer与StringBuilder的区别

    StringBuffer和StringBuilder类都表示内容可以被修改的字符串,StringBuilder是线程不安全的,运行效率高,如果一个字符串变量是在方法里面定义,

    这种情况只可能有一个线程访问它,不存在不安全的因素了,则用StringBuilder。如果要在类里面定义成员变量,并且这个类的实例对象会在多线程环境下使用,那么最好用StringBuffer。

------------------------------------------------------------------------------------------------------------------------------
  6)(参考)String 和StringBuffer的区别

    JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。String类表示内容不可改变的字符串。

    而StringBuffer类表示内容可以被修改的字符串。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。

    另外,String实现了equals方法,new String(“abc”).equals(new String(“abc”)的结果为true,而StringBuffer没有实现equals方法,所以,new StringBuffer(“abc”).equals(new StringBuffer(“abc”)的结果为false。

------------------------------------------------------------------------------------------------------------------------------

  大概就是这么多了明日继续,如果涉及到版权问题联系我,我会删掉。

  我只是博客的搬运工~~~~~

   

转载于:https://www.cnblogs.com/cbssyf/p/5422847.html

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

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

相关文章

怎么看cudnn的版本好_祖坟风水怎么看,好祖坟有什么征兆?

人们之所以看重祖坟的风水,是因为祖坟的风水与后代子孙的运势密切相关,可以说祖坟的风水好不好关系着子孙后代的运势顺不顺,因此对于祖坟的风水好坏人们是非常在意的,那么祖坟风水怎么看,好祖坟有什么征兆呢?下面是小编…

iOS - Swift SQLite 数据库存储

前言 采用 SQLite 数据库来存储数据。SQLite 作为一中小型数据库,应用 iOS 中,跟前三种保存方式相比,相对比较复杂一些。注意:写入数据库,字符串可以采用 char 方式,而从数据库中取出 char 类型&#xff0c…

Hibernate 多对多关联查询条件使用

from Brand as b inner join fetch b.styles as s where s.styleId? 转载于:https://www.cnblogs.com/cocoat/p/5427467.html

Spark 宽依赖和窄依赖

2019独角兽企业重金招聘Python工程师标准>>> 我们知道RDD就是一个不可变的带分区的记录集合,Spark提供了RDD上的两类操作,转换和动作。转换是用来定义一个新的RDD,包括map, flatMap, filter, union, sample, join, groupByKey, co…

smart gesture安装失败_WinCC flexible SMART V3 SP2安装步骤以及常见错误解决方法

1安装配置1. win7和win10系统都可以装2. 运行内存至少要2G。3. 硬盘储存空间至少要3G。2安装注意事项1.安装本软件之前必须要关闭所有杀毒软件(例如360安全卫士/360杀毒/电脑管家)等。2.其它西门子软件不要使用或者打开。3.安装之前确保硬盘空间充足。3下载地址https://bbs.jcp…

各类数据集整理(持续更新中ing)

转自:https://zhuanlan.zhihu.com/p/84088095 最近一次新增:2020.02.11 大家好,先给各位抱拳了!我是和鲸(科赛 http://kesci.com)的运营一枚,今天给大家分享以下我们(通过网线&…

Java Experiment 3 PairProgramming

http://www.cnblogs.com/20145106ssr/p/5428222.html 转载于:https://www.cnblogs.com/Christen/p/5428655.html

启动页面和各设备的宽高比及像素

2019独角兽企业重金招聘Python工程师标准>>> iOS7只能用LaunchImage来布置启动画面,只能用图片。iOS8以后支持LaunchScreen.xib来布置,可以自己添加控件。iOS8以及以后的用LaunchScreen来配置启动页。iOS8以后的会走这个设置,而io…

cc压力测试_中小型网站如何防范CC攻击?

大公司就不说了,付费CDN,防火墙,WAF,大流量,一般也会配置专门的安全问题响应团队。今天侧重讨论一下中小型网站如何(优雅)防范CC攻击。中小站点安全问题通病:对安全问题不重视&#…

ubuntu16.04 360随身WiFi2

查看kernel版本,插入360随身WiFi2,打开终端,执行下面命令即可。 ------------------------------------------------------------------------------------------------------------- From your kernel version, 4.2.0-16, it appears that…

泛型复习

回顾泛型类 泛型类&#xff1a;具有一个或多个泛型变量的类被称之为泛型类1、class A<T>{} 2、在创建泛型实例时&#xff0c;需要为其类型变量赋值A<String> anew A<String>(); *如果创建实例时&#xff0c;不给类型变量赋值&#xff0c;那么会有一个警告&am…

.net core EPPlus npoi_2020 ASP.NET界面开发:DevExpress v20.1支持.NET Core设计时

DevExpress ASP.NET Web Forms Controls拥有针对Web表单(包括报表)的110种UI控件&#xff0c;DevExpress ASP.NET MVC Extensions是服务器端MVC扩展或客户端控件&#xff0c;由轻量级JavaScript小部件提供支持的70个高性能DevExpress ASP.NET Core Controls&#xff0c;包含功能…

ubuntu android studio SDK emulator directory is missing

ctrlH&#xff0c;搜索Android studio&#xff0c;把所有的都删除&#xff0c;再次安装即可下载

有关于我的一点想法

之前失眠写的&#xff0c;从空间搬运过来 之前一直想写一下有关自己想法。趁着失眠写一写。 不知道是不是幸运&#xff0c;我有幸认识了吴宝俊老师。他写博客&#xff0c;我经常去看他写的博客。后来在留言板发言几次也就熟了。虽然也仅限网友吧……但是我需要人给我指点迷津。…

mac电脑如何与手机同步复制粘贴_如何将电脑里的文件同步到手机里?

由于PDF的特殊性&#xff0c;一般很少有适用于手机编辑的软件&#xff0c;所以我们都习惯于使用电脑来修改PDF文档后&#xff0c;再发送到手机微信发送给其他人&#xff0c;那么如何快速将电脑里的PDF文件同步到手机里面呢&#xff1f;可能很多人会想到使用各种云盘&#xff0c…

走进缓存的世界(一) - 开篇

系列文章 走进缓存的世界&#xff08;一&#xff09; - 开篇走进缓存的世界&#xff08;二&#xff09; - 缓存设计走进缓存的世界&#xff08;三&#xff09; - Memcache概述 对于程序员来说多多少少都懂一点算法&#xff0c;算法是什么&#xff1f;算法是“时间”与“空间”的…

【解决问题】OpenCV(3.4.1) Error: Parsing error (xx.yaml(13): Incorrect indentation) in icvYMLParseValue

本博客运行环境为Ubuntu18.04 下 Kdevelop。 运行slam的一个cpp文件时&#xff0c;错误描述如下&#xff1a; OpenCV(3.4.1) Error: Parsing error (KITTI00-02.yaml(13): Incorrect indentation) in icvYMLParseValue, file /home/hadoop/opencv-3.4.1/modules/corec/persis…

dede后台栏目管理文章统计数量和实际文章数不一致解决办法

操作dede_arctiny表&#xff0c;将和栏目对应的typeid所有文章去掉即可。转载于:https://www.cnblogs.com/zgzy/p/5432724.html

an 转换器_400V耐压场效应管替代IRF730B型号参数,使用在DC-DC电源转换器。_场效应管吧...

DC-DC电源转化器的应用场景逐渐广泛&#xff0c;那么适用于DC-DC电源模块的场效应管需求也随之越来越高&#xff0c;这时候电源转化器厂的电子工程师就要留意了&#xff0c;国内是否有优质的场效应管能替代IRF730B型号呢&#xff0c;其实是有的&#xff0c;FHP840其实是可以跟I…

spring MVC中页面添加锚点

2019独角兽企业重金招聘Python工程师标准>>> 需要添加锚点的代码&#xff1a; <li><a href"main/index#page1">推荐车型</a></li> <li><a href"main/index#page2">热门车型</a></li>需要跳转的…