如果想回顾一些基础内容,直接点击下面文章即可!
用修真来打开Java学习模式,入内不亏!
硬核干货!Java修真之练气筑基篇(持续更新)
干货满满!Java修真之修炼斗技–入门面向对象
定义:String s1 = “uml”; String s2 = “uml”; String s3= new String(“uml”); String s4= new String(“uml”);那么,s1==s2;s3 == s4;s1.equals(s3); 判断正确与否
A:T,F,T
B:F,T,F
考查知识点:String类创建的对象在JVM中的内存分配和“equals”与“==”的区别
==:比较两个引用的地址和值
equals:比较两个引用的值
s1==s2,比较的是比较的是地址和值,由上图得知两个引用指向的是同一个地址,所以返回true
s3 == s4,比较的是两个new出来开辟的空间对象地址,所以值相同,但地址不同,返回false.
s1.equals(s3),比较的是内容,返回true
如果一个接口Cow有个方法drink(),有个类Calf实现接口Cow,则在类Calf中正确的是? ( )
A:void drink() { …}
B:protected void drink() { …}
C:public void drink() { …}
D:以上语句都可以用在类Calf中
考查知识点:接口的性质
子类重写父类方法时,方法的访问权限不能小于原访问权限,在接口中,方法的默认权限就是public,所以子类重写后只能是public
顺序执行下列程序语句后,则b的值是()
String a=“Hello”;
String b=a.substring(0,2);
A:Hello
B:Hel
C:He
D:null
考查知识点:substring()方法的性质
参数:beginIndex - 起始索引(包括);endIndex - 结束索引(不包括);返回:指定的子字符串 public String substring(int beginIndex, int endIndex)
因此:substring 方法将返回一个包含从 start 到最后(不包含 end )的子字符串的字符串。
计算机所能处理的最小的数据项称为()
A:位
B:字节
C:字
D:双字
1双字=2字=4字节=32位
记住之间关系即可
执行如下程序,输出结果是( )
class Test { private int data; int result = 0; public void m() { result += 2; data += 2; System.out.print(result + " " + data); } } class ThreadExample extends Thread { private Test mv; public ThreadExample(Test mv) { this.mv = mv; } public void run() { synchronized(mv) { mv.m(); } } } class ThreadTest { public static void main(String args[]) { Test mv = new Test(); Thread t1 = new ThreadExample(mv); Thread t2 = new ThreadExample(mv); Thread t3 = new ThreadExample(mv); t1.start(); t2.start(); t3.start(); } }
A:0 22 44 6
B:2 42 42 4
C:2 24 46 6
D:4 44 46 6
主要是分析代码流程:t1、t2、t3线程依次执行
Test mv =newTest()声明并初始化对data赋默认值
t1,t2,t3线程使用同一个对象mv
使用synchronized关键字加同步锁线程依次操作m()
t1.start();使得result=2,data=2,输出即为2 2
t2.start();使得result=4,data=4,输出即为4 4
t3.start();使得result=6,data=6,输出即为6 6
System.out.print(result +" "+ data);是print()方法不会换行,输出结果为2 24 46 6
DBMS 中实现事务持久性的子系统是()
A:安全性管理子系统
B:完整性管理子系统
C:并发控制子系统
D:恢复管理子系统
主要考察数据库DBMS的四个性质
原子性:事务是一组不可分割的操作单元,这组单元要么同时成功要么同时失败(由DBMS的事务管理子系统来实现);
一致性:事务前后的数据完整性要保持一致(由DBMS的完整性子系统执行测试任务);
隔离性:多个用户的事务之间不要相互影响,要相互隔离(由DBMS的并发控制子系统实现);
持久性:一个事务一旦提交,那么它对数据库产生的影响就是永久的不可逆的,如果后面再回滚或者出异常,都不会影响已提交的事务(由DBMS的恢复管理子系统实现的)
URL u =new URL(“http://www.123.com”);。如果www.123.com不存在,则返回______。
A:http://www.123.com
B:””
C:null
D:抛出异常
在执行URL u =new URL(“http://www.123.com”);这句话的时候确实要抛出异常,但是这个异常属于IOException,不管网址是否存在,最后都会返回该网址的一个连接,打印出来就是该网址。
单例模式中,两个基本要点是
A:构造函数私有
B:静态工厂方法
C:以上都不对
D:唯一实例
下面来介绍一下什么是单例模式?
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。
特点:
1、单例类只能有一个实例。
2、单例类必须自己创建自己的唯一实例。
3、单例类必须给所有其他对象提供这一实例。
应用实例:
1、一个班级只有一个班主任。
2、Windows 是多进程多线程的,在操作一个文件的时候,就不可避免地出现多个进程或线程同时操作一个文件的现象,所以所有文件的处理必须通过唯一的实例来进行。
3、一些设备管理器常常设计为单例模式,比如一个电脑有两台打印机,在输出的时候就要处理不能两台打印机打印同一个文件。
优点:
1、在内存里只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例)。
2、避免对资源的多重占用(比如写文件操作)
缺点:没有接口,不能继承,与单一职责原则冲突,一个类应该只关心内部逻辑,而不关心外面怎么样来实例化。
使用场景:
1、要求生产唯一序列号。
2、WEB 中的计数器,不用每次刷新都在数据库里加一次,用单例先缓存起来。
3、创建的一个对象需要消耗的资源过多,比如 I/O 与数据库的连接等。
单例模式有分为饿汉式和懒汉式
//懒汉式单例类.在第一次调用的时候实例化自己 public class Singleton { private Singleton() {} private static Singleton single=null; //静态工厂方法 public static Singleton getInstance() { if (single == null) { single = new Singleton(); } return single; } } //饿汉式单例类.在类初始化时,已经自行实例化 public class Singleton1 { private Singleton1() {} private static final Singleton1 single = new Singleton1(); //静态工厂方法 public static Singleton1 getInstance() { return single; }
哪个正确?
A:abstract类只能用来派生子类,不能用来创建abstract类的对象。
B:final类不但可以用来派生子类,也可以用来创建final类的对象。
C:abstract不能与final同时修饰一个类。
D:abstract类定义中可以没有abstract方法。
补充知识点:
A,抽象类和接口都不可以实例化。
B,final类不能被继承。
C,abstract不能和final共用修饰类。
D,抽象类中可以没有抽象方法,有抽象方法的类一定是抽象类。
注意:abstract是用来修饰类和方法的:
1. 修饰方法:abstract不能和private、final、static共用。
2. 修饰外部类:abstract不能和final、static共用。(外部类的访问修饰符只能是默认和public)
3. 修饰内部类:abstract不能和final共用。(内部类四种访问修饰符都可以修饰)
下列不是 Java 关键字的是 ( )
A:abstract
B:false
C:native
D:sizeof
这个题目看起来是比较简单,但是我还是做错了,现在补充一下
native 用来声明一个方法是由计算机相关语言(如c/c++/FORTRAN)实现的。
现在补一张最完整的图片,可以帮助小伙伴们回顾一下关键字。