java问答1

1. 怎么样才能比较两个对象是否相等? 2. 如果要实现两个对象的比较,至少要实现哪些方法?为什么?
1. 分几种情况: 对于基础整数类型对应的变量,比如Integer/Char/Long类型,直接用“==”来比较值,在一定范围内是行的通的。比如Char必须是不大于127字符,或者对应Integer和Long来说其值在-128~127之间,“==”都能正确地比较其值是否相等;对于其他范围则必须用equals来比较 对于一般对象的变量,“==”用来比较其指向的是不是同一个对象(内存地址一致),而如果重写了合适equals,则equals用来比较对象的数据意义上是否相等(尽管实际其有些字段可能不同)。 2. 要实现对象的比较,至少要实现hashCode和equals,可以按需实现clone。 equals用来做对象数据意义上相等的比较,hashCode用来做对象哈希意义上是否相等,也就是说用于hashTables等集合中等时候是否映射到同一个位置。一般来讲,equals相等的对象,hashCode也要相等;反之hashCode相等的话,equals最好相等,否则会令人困惑或带来操作上的麻烦。 clone则能复制出一个hashCode和equals都相同的对象,但实际是单独的一个地址空间(==判断则不相同)。
四面
一面:开发基础,感觉就是为了初步筛选而已,数据结构、事务隔离级别、技术平台、开发框架、项目细节、分布式事务、分布式锁、Java并发模型、JVM、缓存,问的广,偏理论。
二面:项目经验和对中间件实现的理解,dubbo的优化、线程问题排查、jvm优化、redis过期键处理、分布式事务实现,问的不多比较考验学的深度。
三面:业务理解和架构,技术平台的选择、架构设计的过程和考量、对业务的理解、个人发展定位、对技术点的预判,问题开放,主要看你个人的视野、架构能力、定位、大局观。
四面:hr,问职业经历、工作组成、工作评价和个人预期,我在写代码占比的问题上回答的过低,败笔,对公司考评方式和结果信息的收集也是欠缺的,另外对要去的业务部门的理解也越全面越好。

一个''.jaa''源文件中是否可以包括多个类(不是内部类)?有什么限制?
可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致。

Jaa有没有goto?
jaa中的保留字,现在没有在jaa中使用。

说说&和&&的区别。
&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。
&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如,对于if(str != null && !str.equals(“”))表达式,当str为null时,后面的表达式不会执行,所以不会出现NullPointerException如果将&&改为&,则会抛出NullPointerException异常。
&还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作,我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位,例如,0x31 & 0x0f的结果为0x01。
备注:这道题先说两者的共同点,再说出&&和&的特殊之处,并列举一些经典的例子来表明自己理解透彻深入、实际经验丰富

在JAA中如何跳出当前的多重嵌套循环?
在Jaa中,要想跳出多重循环,可以在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的break 语句,即可跳出外层循环。例如,
ok:
for(int i=0;i > 10; i++){
for(int j=0;j<i; j++){
if(j == 5) break ok;
}
}
另外, 方法二, 使用中间变量
bool isCon = true;
for(int i=0;isCon && i > 10; i++){
for(int j=0;isCon && j<i; j++){
if(j == 5) isCon = false;
}
}

switch语句能否作用在byte上,能否作用在long上,能否作用在String上?
可选参数类型:char, byte, short, Character, Byte, Short, Integer, String, or an enum

char型变量中能不能存贮一个中文汉字?为什么?
char型变量是用来存储Unicode编码的字符的,unicode编码字符集中包含了汉字,所以,char型变量中当然可以存储汉字啦。不过,如果某个特殊的汉字没有被包含在unicode编码字符集中,那么,这个char型变量中就不能存储这个特殊汉字。补充说明:unicode编码占用两个字节,所以,char类型的变量也是占用两个字节。

用最有效率的方法算出2乘以8等於几?
因为将一个数左移n位,就相当于乘以了2的n次方,那么,一个数乘以8只要将其左移3位即可,而位运算cpu直接支持的,效率最高,所以,2乘以8等於几的最效率的方法是2

JAVA8新特性?
--

Java对象的生命周期
Java对象生命周期包含创建阶段 、 应用阶段 、不可见阶段 、不可达阶段 、收集阶段 、终结阶段、 对象空间重新分配阶段等等。

HashMap和HashTable存储原理
HashMap和HashTable是使用数组+链表结构实现,根据Hash和table长度计算数组的下标index做操作,hashMap默认数组长度为16,hashMap对null值的key都放在table[0]的位置,table[index]形成1个链表,当然在新版jdk中链表节点数>8会变成红黑树结构。hashMap达到最大数量会扩容,扩容table长度变为2倍,每个元素(table中)但重新计算index放到新的table中。

HTTP协议,GET和POST 的区别
---

 匿名内部类中可以访问final类型的局部变量
  1. final String foo = "42";  
  2. new Thread() {  
  3.     public void run() {  
  4.          dowhatever(foo);  
  5.     }  
  6. }.start();


数组类型的对象调用clone方法可以复制一个数组
  1. int[] arr = {123};  
  2. int[] arr2 = arr.clone();  

通过反射可以访问私有成员
  1. public class Foo {  
  2.     private int bar;  
  3.   
  4.     public Foo() {  
  5.         setBar(17);  
  6.     }  
  7.   
  8.     private void setBar(int bar) {  
  9.         this.bar=bar;  
  10.     }  
  11.   
  12.     public int getBar() {  
  13.         return bar;  
  14.     }  
  15.   
  16.     public String toString() {  
  17.         return "Foo[bar="+bar+"]";  
  18.     }  
  19. }  
  1. import java.lang.reflect.*;  
  2.   
  3. public class AccessibleExample {  
  4.     public static void main(String[] args)  
  5.         throws NoSuchMethodException,IllegalAccessException, InvocationTargetException, NoSuchFieldException {  
  6.         Foo foo=new Foo();  
  7.         System.out.println(foo);  
  8.   
  9.         Method method=Foo.class.getDeclaredMethod("setBar"int.class);  
  10.         method.setAccessible(true);  
  11.         method.invoke(foo, 42);  
  12.   
  13.         System.out.println(foo);  
  14.         Field field=Foo.class.getDeclaredField("bar");  
  15.         field.setAccessible(true);  
  16.         field.set(foo, 23);  
  17.         System.out.println(foo);  
  18.     }  
  19. }  
打印结果:
  1. Foo[bar=17]  
  2. Foo[bar=42]  
  3. Foo[bar=23]  

访问局部变量比访问成员变量快
  1. public class Slow {  
  2.   /** Loop counter; initialized to 0. */  
  3.   private long i;  
  4.   
  5.   public static void main( String args[] ) {  
  6.     Slow slow = new Slow();  
  7.     slow.run();  
  8.   }  
  9.   private void run() {  
  10.     while( i++ < 10000000000L )  
  11.       ;  
  12.   }  
  13. }  
以上代码平均耗时 18.018s
优化后的代码:
  1. public class Fast {  
  2.   /** Loop counter; initialized to 0. */  
  3.   private long i;  
  4.   
  5.   public static void main( String args[] ) {  
  6.     Fast fast = new Fast();  
  7.     fast.run();  
  8.   }  
  9.   private void run() {  
  10.     long i = getI();  
  11.     while( i++ < 10000000000L )  
  12.       ;  
  13.     setI( i );  
  14.   }  
  15.   private long setI( long i ) {  
  16.     this.i = i;  
  17.   }  
  18.   private long getI() {  
  19.     return this.i;  
  20.   }  
  21. }  
以上代码平均耗时 10.509s

匿名内部类可以直接调用子类中定义的方法
  1. (new Object() {  
  2.     public String someMethod(){   
  3.         return "some value";  
  4.     }  
  5. }).someMethod();  
  6. new Object() {  
  1.   void foo(String s) {  
  2.     System.out.println(s);  
  3.   }  
  4. }.foo("Hello");  
尽管创建的匿名内部类实例并没有实现一个独立的接口, 但是能直接调用不在父类Object中的方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
东南亚位于我国倡导推进的“一带一路”海陆交汇地带,作为当今全球发展最为迅速的地区之一,近年来区域内生产总值实现了显著且稳定的增长。根据东盟主要经济体公布的最新数据,印度尼西亚2023年国内生产总值(GDP)增长5.05%;越南2023年经济增长5.05%;马来西亚2023年经济增速为3.7%;泰国2023年经济增长1.9%;新加坡2023年经济增长1.1%;柬埔寨2023年经济增速预计为5.6%。 东盟国家在“一带一路”沿线国家中的总体GDP经济规模、贸易总额与国外直接投资均为最大,因此有着举足轻重的地位和作用。当前,东盟与中国已互相成为双方最大的交易伙伴。中国-东盟贸易总额已从2013年的443亿元增长至 2023年合计超逾6.4万亿元,占中国外贸总值的15.4%。在过去20余年中,东盟国家不断在全球多变的格局里面临挑战并寻求机遇。2023东盟国家主要经济体受到国内消费、国外投资、货币政策、旅游业复苏、和大宗商品出口价企稳等方面的提振,经济显现出稳步增长态势和强韧性的潜能。 本调研报告旨在深度挖掘东南亚市场的增长潜力与发展机会,分析东南亚市场竞争态势、销售模式、客户偏好、整体市场营商环境,为国内企业出海开展业务提供客观参考意见。 本文核心内容: 市场空间:全球行业市场空间、东南亚市场发展空间。 竞争态势:全球份额,东南亚市场企业份额。 销售模式:东南亚市场销售模式、本地代理商 客户情况:东南亚本地客户及偏好分析 营商环境:东南亚营商环境分析 本文纳入的企业包括国外及印尼本土企业,以及相关上下游企业等,部分名单 QYResearch是全球知名的大型咨询公司,行业涵盖各高科技行业产业链细分市场,横跨如半导体产业链(半导体设备及零部件、半导体材料、集成电路、制造、封测、分立器件、传感器、光电器件)、光伏产业链(设备、硅料/硅片、电池片、组件、辅料支架、逆变器、电站终端)、新能源汽车产业链(动力电池及材料、电驱电控、汽车半导体/电子、整车、充电桩)、通信产业链(通信系统设备、终端设备、电子元器件、射频前端、光模块、4G/5G/6G、宽带、IoT、数字经济、AI)、先进材料产业链(金属材料、高分子材料、陶瓷材料、纳米材料等)、机械制造产业链(数控机床、工程机械、电气机械、3C自动化、工业机器人、激光、工控、无人机)、食品药品、医疗器械、农业等。邮箱:market@qyresearch.com

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值