校园网上零售网站建设方案,wordpress get_post_mime_type,地产设计网站,网上青团智慧团建官网目录 第二幕、第一场#xff09;公司前台第二场#xff09;公司卫生间 友情提醒 背面试题很枯燥#xff0c;加入一些戏剧场景故事人物来加深记忆。PS:点击文章目录可直接跳转到文章指定位置。 第二幕、
第一场#xff09;公司前台
【接待人员埃斯卡莱罗#xff0c;面试… 目录 第二幕、第一场公司前台第二场公司卫生间 友情提醒 背面试题很枯燥加入一些戏剧场景故事人物来加深记忆。PS:点击文章目录可直接跳转到文章指定位置。 第二幕、
第一场公司前台
【接待人员埃斯卡莱罗面试者老王面试者奥斯卡】
奥斯卡老王这个公司不好你千万不要来面试他们整天加班没有加班费放假只能调休。
埃斯卡莱罗老王别理他他也是来面试的。你先填一下表格1.Java基础语法面试题
问题答案.java源文件中是否可以包括多个类不是内部类有什么限制可以有多个类但只能有一个public的类并且public的类名必须与文件名相一致。一个文件中可以只有非public类如果只有一个非public类此类可以跟文件名不同和的区别和都可以用作逻辑与的运算符为短路与另外可以做为整数的位运算符的两侧必须要求是布尔值或者布尔表达式。如果左侧为false程序不会去继续判断右侧表达式的真假。java中的基本数据类型有哪些byte(位)1字节、short(短整数)2字节、int(整数)4字节、long(长整数)8字节、float(单精度)4字节、double(双精度)8字节、char(字符)2字节boolean(布尔值)理论上占1bit。8bit是一字节。Integer与int的区别int基本数据类型Integer是java为int提供的封装类。int的默认值为0而Integer的默认值为nullint是值传递值保存在值栈中integer是引用地址传递存在堆中通过对象的引用来调用。char型变量中能不能存贮一个中文汉字char型变量是用来存储Unicode编码的字符的unicode编码字符集中包含了汉字所以char型变量中可以存储汉字。7)short s1 1; s1 s1 1;有什么错? short s1 1; s1 1;有什么错?由于s11运算时会自动提升表达式的类型所以结果是int型再赋值给short类型s1时编译器会提示错误需要强制转换类型。由于是java语言规定的运算符Java编译器会对它进行特殊处理因此可以正确编译。和equals方法有什么区别 操作符专门用来比较两个变量的值是否相等比较两个基本类型的数据或两个引用变量是否相等只能用 操作符。equals方法只能用于判断引用类型重写后用于判断对象内容是否相同。不重写方法的话就是使用操作符判断引用类型的地址值。所以一定要记得重写啊不然白给作用域publicprivateprotected以及不写时的区别?public当前类同包子类其他包。protected当前类同包子类。default当前类同包。private当前类。Java 常用包java.lang–语言包包括Object类、Thread类、String、Math、System、Runtime、Class、Exception、Process等java.util–实用工具包Scanner、Date、Calendar、LinkedList、Hashtable、Stack、TreeSet等java.NET–网络功能包URL、Socket、ServerSocket等java.sql–数据库连接包实现JDBC的类库java.io–输入输出包与流相关的包Java 常用接口Comparable ,Collection,Set, List, Map, Runnable Iterable Iterator 等
老王奥斯卡Java这么卷吗保洁阿姨都来卷Java了这也太抽象了。说到抽象2.abstract class抽象类和interface接口有什么区别?
奥斯卡 ①抽象类 含有abstract修饰符的class即为抽象类abstract类不能创建实例对象。含有abstract方法的类必须定义为abstract class有抽象方法和非抽象方法。abstract class类中定义抽象方法必须在具体子类中实现所以不能有抽象构造方法或抽象静态方法。如果子类没有实现抽象父类中的所有抽象方法那么子类也必须定义为abstract类型。 ②接口 接口中的成员变量类型默认为public static final。在Java 8之前,接口只能定义抽象方法,所有的方法都必须由实现该接口的类来实现。但是,在Java 8中,接口可以定义默认方法和静态方法。 一个接口可以实现多个父接口将实现的各个接口用逗号隔开 接口的特点是对外暴露的规则是功能的扩展接口的出现降低耦合性。
埃斯卡莱罗聊什么呢安静点。知道什么是静态关键字吗3.static关键字
奥斯卡 ①静态初始化块:static{ } : 使用static来修饰的自由块只在类加载的时候执行一次通常用于初始化静态变量。它只执行一次它比main还先执行执行顺序是静态代码块–构造方法 ②static关键字声明属性(类属性): 静态变量也称为类变量可以直接通过类名调用。也可以通过对象名调用。这个变量属于类可以被该类的所有实例对象所共享成员变量也称为实例变量只能通过对象名调用这个变量属于对象。 ③static关键字声明方法: 可以在不创建对象的情况下,直接使用类名.方法名()的形式调用静态方法只能访问静态成员如果想在静态方法中调用非静态方法需要先创建对象。 ④静态的特点: 随着类的加载而加载优先于对象存在对所有对象共享可以被类名直接调用
埃斯卡莱罗4.abstract修饰的方法是否可同时是static或native或是synchronized?
奥斯卡 不可以 ①abstract与static不能同时使用 static关键字修饰的成员是属于类的其可以直接被类所调用。而abstract修饰的方法为抽象方法为了让子类继承后重写该方法即无方法体的方法不能够被直接调用需要在子类或实现类中去编写完整的方法处理逻辑后才能使用。 ②native与abstract不能共用 表示该方法要用另外一种依赖平台的编程语言实现的不存在着被子类实现的问题所以它也不能是抽象的不能与abstract混用。 ③synchronized和abstract不能共用 abstract方法只能存在于抽象类或接口中它不能直接产生对象而默认synchronized方法对当前对象加锁没有对象是不能加锁。另外synchronized不能被继承子类继承时需要另加修改符。
老王人生最终的价值在于觉醒和思考的能力而不只在于面试。— —亚里士老王
第二场公司卫生间
【如厕计时器(控制员工上厕所时间)面试者老王】 老王出恭。
如厕计时器你有30秒的时间摆脱你的沉重负担。超时将会扣钱。回答面试题可以延长时间。5.说一下单例Singleton设计模式
老王今天算是长见识了。良心公司强迫症福利还有助学习进步。 单态设计模式创建一个类应满足 ①构造函数私有化 ②本类中创建一个该类私有对象 ③为了方便其他程序访问到该类对象可对外提供一个公共访问方式 Runtime类就是单例设计模式。 饿汉式当类加载的时候就创建对象。 class Single{private Single(){}//将构造函数私有化不让别的类建立该类对象private static final Single snew Single();//自己建立一个对象public static Single getInstance()//提供一个公共访问方式{return s;}} 懒汉式类才加载进内存的时候对象还没有存在只有调用了 getInstance()方法时对象才开始创建。
class Single{private Single(){} private static Single s;public static Single getInstance(){if(snull)snew Single();return s;}} 懒汉式是延迟加载如果多个线程同时操作懒汉式时就有可能出现线程安全问题可以加同步来解决。但是加了同步之后每一次都要比较锁效率就变慢了所以可以加双重判断来提高程序效率 public static Single getInstance(){if(snull){synchronized(Single.class){if(snull) snew Single();}}return s;}如厕计时器看来你已经明白了单例设计模式的意义卫生间也是这样设计的噢不允许有两个对象在同一个坑位。
老王快点问下一个问题没时间了。
如厕计时器6.final关键字
老王 ①final类:不可被继承如java.lang.Math就是一个 final类不可被继承。 ②final变量:在初始化后不可改变变量值用于常量定义。如果final变量是引用变量则不可以改变它的引用对象但可以改变对象的属性。final修饰的变量是一个常量。只能被赋值一次。 ③final方法:不可被重写 ④final是引用变量不能重新赋值但是引用指向的对象的内容可以变化
例1有编译错误
final StringBuffer anew StringBuffer(immutable);
anew StringBuffer();例2正确final StringBuffer anew StringBuffer(immutable);a.append(“123”);如厕计时器7.说一下内部类
老王心很累 ①内部类 定义在一个类内部的类inner class内部类的对象能访问它所处类的私有数据 内部类能隐藏起来不为同一个包中其他类访问当内部类定义在外部类的成员位置而且非私有则可以在其他外部类中直接建立内部类对象 格式外部类名.内部类名 变量名 new 外部类对象.内部类对象 如Outer.Inner in new Outer().new Inner() ②匿名内部类 前提继承一个类或者实现一个接口 好处简化代码书写 弊端不能直接调用自己的特有方法不能执行强转换动作 格式 new 父类名或者接口名() { 重写父类方法或者实现接口中的方法。 也可以自定义其他方法。 };
如厕计时器8.说一下String
老王①字符串虽然是引用类型属于对象但是它不是存储在堆空间中而是存储在方法区中的字符串常量池中。 ②String的底层是数组。jdk1.8及以前String使用的是char数组jdk1.9及以后使用的是byte数组。 ③字符串内容做 比较比较的是地址值。 ④字符串与基本类型之间的转换
//类型转换字符串转为基本类型String s1 123;int i Integer.parseInt(s1);String s2 3.14;double d Double.parseDouble(s2);//类型转换基本类型 - Stringint num 123;String s5 num ;String s6 Integer.toString(num);String s7 String.valueOf(num);
⑤String类常用方法将字符串内容转换为全大写/小写 String toLowerCase()将此 String 中的所有字符都转换为小写。 String toUpperCase()将此 String 中的所有字符都转换为大写。int indexOf(String str)返回指定子字符串在此字符串中第一次出现处的索引。 int indexOf(String str, int fromIndex)返回指定子字符串在此字符串中第一次出现处的索引从指定的索引开始。 int lastIndexOf(String str)返回指定子字符串在此字符串中最右边出现处的索引。 int lastIndexOf(String str, int fromIndex)返回指定子字符串在此字符串中最后一次出现处的索引从指定的索引开始反向搜索。 String substring(int beginIndex) 截取字符串从起始索引截取到最未String substring(int beginIndex, int endIndex) 截取字符串满足含起始索引不含结束索引String[] split(String regex)根据给定正则表达式的匹配拆分此字符串。String concat(String str)将指定字符串连接到此字符串的结尾如厕计时器9.说一下StringBuffer与StringBuilder的区别
老王 ①String对象是不可变对象指的是想要改变字符串值时会复用字符串常量池中的地址值。StringBuffer与StringBuilder则是可变的字符序列能修改值。 ②拼接字符串时String会产生新对象而StringBuffer只是增加新字符不产生新对象因此效率高。 ③缓冲区就是一个临时空间它里面可以临时存储数据。缓冲区本身就是一个容器把需要修改的字符串先存储到字符串缓冲区容器中在容器中修改完成后存储在字符串常量池中。 ④StringBuffer不提供线程同步StringBuilder是线程同步的StringBuilder效率不如StringBuffer但是StringBuilder 的方法不是线程安全的不能同步访问。由于 StringBuilder 相较于 StringBuffer 有速度优势所以多数情况下会使用 StringBuilder 类。