1、int类型在Java堆里分配多大的内存
这个题不是int是多少个字节,也不是it在需虚拟机栈里的空间。
2、wait()和sleep()方法从cpu角度来说哪个利用率高?问什么?
3、Java除了通过构造方法外,还有哪些方法可以生成实例?
4、Java有几种唤醒线程的方式?分别有什么优缺点?
5、ConcurrentHashMap与Hashtable比有什么优点?又有什么缺点?
6、有一个方法最多只允许2个线程同时访问,如何处理?
我呆了一下,想来想去int类型始终是4字节的内存
回来查了很多资料,也没找到答案。反正我当初说4字节,那个面试官撇撇嘴不任何。
比较不好的事,既然哥不知道,你作为面试官就不能告诉哥答案!
基础类型和引用是在栈中存储,不是堆
最后一题用信号量
4、notify(),notifyAll(),notify()单独唤醒线程并赋予其对象上的锁,但是如果唤醒的线程没有继续notify其他线程就死翘翘了
notifyAll()唤醒所有线程,都去等待锁对象并竞争
最后一题用信号量
这个Java并发包里有提供一个类CountDownLatch,可以解决
建议你好好补一补多线程,看看CountDownLatch到底是做什么的,再试着搜一搜信号量是做什么的
呵呵,我是面试官也不会要你
楼主答的不错了,我补充一下第5个,ConcurrentHashMap适用于高并发场景,其内部主要采用分段锁技术,使操作其中一段key不影响其他key操作(较hashtable锁细粒度话),当然还包括不可变final、volatile先行发生原则等知识。
我呆了一下,想来想去int类型始终是4字节的内存
回来查了很多资料,也没找到答案。反正我当初说4字节,那个面试官撇撇嘴不任何。
比较不好的事,既然哥不知道,你作为面试官就不能告诉哥答案!
基础类型和引用是在栈中存储,不是堆
我记得Integer 类型如果小于127是在常量池分配不再堆,大于等于128才在对分配内存。。
本来我都懒得回这帖子了,反正也没分,不过你说讲出来大家学学,好吧
首先,他说的是int,不是Integer。你用integer来做这个实验是想向我们证明有常量池这个东西对么?常量池是在方法区中的,可以算是堆的一个分支,但它恰恰又叫非堆(Non-Heap)。常量池是放什么的呢?Class文件中的类描述信息,编译期生成的字面量和符号引用。这么说可能不太清晰,我截个图吧。
在Const pool里你找到了什么?类描述信息还有字符串的字面量以及我声明为final的基本变量(40和50)。这是常量池的作用。
至于那个你的例子结果为什么不是都为true呢?下面是Integer的代码:
private static class IntegerCache {
static final int low = -128;
static final int high;
static final Integer cache[];
static {
// high value may be configured by property
int h = 127;
String integerCacheHighPropValue =
sun.misc.VM.getSavedProperty("java.lang.Integer.IntegerCache.high");
if (integerCacheHighPropValue != null) {
int i = parseInt(integerCacheHighPropValue);
i = Math.max(i, 127);
// Maximum array size is Integer.MAX_VALUE
h = Math.min(i, Integer.MAX_VALUE - (-low) -1);
}
high = h;
cache = new Integer[(high - low) + 1];
int j = low;
for(int k = 0; k < cache.length; k++)
cache[k] = new Integer(j++);
}
public static Integer valueOf(int i) {
assert IntegerCache.high >= 127;
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i + (-IntegerCache.low)];
return new Integer(i);
}
明白了么?里面是有一个缓存池的,其实如果你愿意,改改源码,大可以存比127大的数。缓存池cache是final的,好吧,有兴趣你可以写一个final类型的数组然后javap一下看看是否他在常量池中。至于下面那个问题,我不明确说为什么信号量可以而CountDownLatch不行,只是因为太长了,多线程的东西不是三行两行就讲清了的,多写写爬虫多线程抓取,用用生产者消费者,还有线程池自然就明白了,只讲是没有用的
多维数组 二维数组的声明: Int [][]a = { {1} , {1,2} , {1,2,3} }; 或: Int [][]a = new int [2][]; a[0] = {1,2,3}; a[1] = {4,5,6}; 多维数组的迭代: int [][] b1 = new int [][]{{1,2},{3,...b1.leng...
面试题35:typedef和define有什么区别 (1)用法不同:typedef用来定义一种数据类型的别名,增强程序的可读性。define主要用来定义常量,以及书写复杂使用频繁的宏。 (2)执行时间不同:typedef是编译过程的一...
分享三道简单的算法面试题 1 如何检验一个数是不是2的次幂 我们知道Hashmap的数组长度必须是2的次幂, 目的是为了更好的散列均匀,那么怎么判断一个数是不是2的次幂呢? 这里我们从二进制分析下,如果一个数是2 的次...
1.session和cookie的区别 (1)cookie存放在客户端的浏览器上,session则存放在服务器中 (2)Cookie是不安全的,别人可以通过分析本地的cookie进行cookie欺骗,考虑安全性的话应使用session ...
文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的...
文章目录集合容器概述什么是...List、Map、Set 三个接口存取元素时,各有什么特点?集合框架底层数据结构哪些集合类是线程安全的?Java集合的快速失败机制 “fail-fast”?怎么确保一个集合不能被修改?Collection...
整理好的MyBatis面试题库,史上最全的MyBatis面试题,MyBatis面试宝典,特此分享给大家 MyBatis 介绍 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC ...
文章目录为什么使用MQ?MQ的优点消息队列有什么优缺点?RabbitMQ有什么优缺点?你们公司生产环境用的是什么消息中间件?Kafka、ActiveMQ、RabbitMQ、RocketMQ 有什么优缺点?MQ 有哪些常见问题?...
前端面试汇总(2020年) 一 大纲 1、前言 2、前端工程化 3、前端设计模式 ...8、*前端基础知识点面试题 ...由于新冠肺炎疫情,现在成天呆在家里,加上也要准备面试,就在家里看面试题...
它主要由哪几个注解组成的?配置什么是 JavaConfig?Spring Boot 自动配置原理是什么?你如何理解 Spring Boot 配置加载顺序?什么是 YAML?YAML 配置的优势在哪里 ?Spring Boot 是否可以使用 XML 配置 ?spring boot...
面试题包括以下十九个模块:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、...
今天去自己心仪的公司去面试,本来信心满满,结果面试下面自己深感能力不足,哎,错失了一次这么好的机会 不过还是感谢能给自己这次面试的机会 1 说一下Kotlin的伴生对象(关键字companion使用要说出来) 2 Kotlin...
SpringCloud面试题(一) 大家好,我是酷酷的韩~下面提供一些整理的springcloud面试题 一.微服务的优点缺点?说下开发项目中遇到的坑? 优点: 1.每个服务直接足够内聚,代码容易理解 2.开发效率高,一个服务只做一件事...
JAVA面试精选【Java基础第一部分】 JAVA面试精选【Java基础第二部分】 JAVA面试精选【Java基础第三部分】 JAVA面试精选【Java算法与编程一】 JAVA面试精选【Java算法...阿里历年面试题 Java中高级面试题 数据...
(1)Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。程序员直接编写原生态sql,可以严格控制sql...
文章目录概述什么是Spring MVC?简单介绍下你对Spring MVC的理解?Spring MVC的优点核心组件Spring MVC的主要组件?什么是DispatcherServlet什么是Spring MVC框架的控制器?Spring MVC的控制器是不是单例模式,如果是...
Java最新面试题、面试题答案汇总
总结了JVM一些经典面试题,分享出我自己的解题思路,希望对大家有帮助,有哪里你觉得不正确的话,欢迎指出,后续有空会更新。 1.什么情况下会发生栈内存溢出。 思路: 描述栈定义,再描述为什么会溢出,再说明一下...
文章目录Spring概述(10)什么是spring?Spring框架的设计目标,设计理念,和核心是什么Spring的优缺点是什么?Spring有哪些应用场景Spring由哪些模块组成?Spring 框架中都用到了哪些设计模式?...
1、Spring是什么? Spring是一个轻量级的IoC和AOP容器框架。是为Java应用程序提供基础性服务的一套框架,目的是用于简化...主要由以下几个模块组成: Spring Core:核心类库,提供IOC服务; Spring Context:提...
SpringMVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发...
面试问题之编程语言 1。C++的特点是什么? 封装,继承,多态。支持面向对象和面向过程的开发。 2.C++的异常处理机制? 抛出异常和捕捉异常进行处理。(实际开发) 3.c和c++,java的区别? c是纯过程,c++是对象...
文章目录概述什么是RedisRedis有哪些数据类型Redis有哪些优缺点Redis的应用场景为什么要用 Redis /为什么要用缓存为什么要用 Redis 而不用 map/guava 做缓存?Redis为什么这么快持久化什么是Redis持久化?...
史上最强多线程面试47题(含答案),建议收藏 金九银十快到了,即将进入找工作的高峰期,最新整理的最全多线程并发面试47题和答案总结,希望对想进BAT的同学有帮助,由于篇幅较长,建议收藏后细看~ 1、并发编程三要素?...
这份面试清单是从我 2015 年做了 TeamLeader 之后开始收集的,一方面是给公司招聘用,另一方面是想用它来挖掘在 Java 技术栈中,还有那些知识点是我不知道的,我想找到这些技术盲点,然后修复它,以此来提高自己的...
Tomcat的缺省端口是多少,怎么修改tomcat 有哪几种Connector 运行模式(优化)?Tomcat有几种部署方式?tomcat容器是如何创建servlet类实例?用到了什么原理?Tomcat工作模式Tomcat顶层架构Tomcat顶层架构小结...
软件测试工程师,和开发工程师相比起来,虽然前期可能不会太深,但是涉及的面还是比较广的。...测试工程师的面试题,基本上都是大同小异的,面试的核心主要在于框架模块(一到两年工作经验) 。今...
本文的面试题如下: Redis 持久化机制 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题 热点数据和冷数据是什么 Memcache与Redis的区别都有哪些? 单线程的redis为什么这么快 redis的数据类型,以及每种...
这是道送分题,并不是真的要说出它们的深度区别,但如果你不知道ART是什么,我觉得你不够关注行业发展,靠这个平台吃饭,不关心它,怎么都说不过去。 ART 就是 Android Runtime ,是安卓4.4之后的系统的新的...
2.数据库隔离级别,每个级别会引发什么问题,mysql默认是哪个级别 脏读:事务B读取事务A还没有提交的数据 不可重复读:两次事务读的数据不一致 幻读:事务A修改了数据,事务B也修改了数据,这时在事务A看