牛客网刷题(纯java题型 271~300题)

两个线程,都是执行的相同的操作: a+1 , a-2;
由于两个线程并发执行,所以操作时可以覆盖的,比如一个线程的a+1可能会覆盖掉另一个线程的a-2;

java的跨平台特性: 一次编译,到处运行
跨平台特性是指字节码文件可以在多个平台运行,而不是源代码

对于++k,或者是j = ++k 分为两个值, 一个值是j也就是(++k)的值,另一个值是++(k)中的k的值,也就是运算过后k的值
++k, 是先运算,后赋值,里面说的赋值,就是给(++k)赋值,先运算后赋值,就是先++,然后将++后的值赋值给(++k) , 里面的k值无论如何都是要增加的(k++也一样,里面的k值无论如何都是要增加的)
k++,是先赋值,后运算,里面说的赋值,也是给(k++)赋值,先赋值,后运算,就是先将k的值赋值给(k++),然后在++

WEB-INF -- classes + lib + web.xml
classes -- xxx.class
lib -- XXX.jar

overload对方法的要求(一个一定相同,一个一定不同):
方法名一定相同,参数一定不同
至于修饰符,返回值,抛出异常的类型等其他的,没有任何要求

对于子类和基类的初始化过程的补充:
1,先执行基类的静态变量初始化和静态代码块
2,执行子类的静态变量初始化和静态代码块
3,执行基类的普通变量初始化和普通代码块,然后这个时候执行到了子类中的构造函数中的第一行,如果没有显示的使用super()来调用基类中的构造函数,那么就隐式的调用基类中的无参构造函数,且无论是否显示的指定构造函数,都必须要放在子类构造函数中的第一行,即:执行普通变量和普通代码块, 然后根据子类构造器的情况来调用超类的构造函数
4, 执行子类的普通变量初始化和普通代码块,然后执行子类构造函数中的剩余部分
对应到本题中的过程:
先执行C c = new C();
执行super("B"),也就是A(String s){ System.out.println(s));
执行Test(){ super("B");System.out.println("B");}中的System.out.println("B")

标准Statement一共有三种,Statement是SQL语句在JDBC中的载体
Statement是最基本的方式,采用字符串拼接的方式,存在SQL注入漏洞
PreparedStatement是调用数据库的与编译功能,对SQL语句进行预编译,效率高,防止SQL注入
CallableStatement扩展了PreparedStatement,调用了数据库的存储过程
BatchedStatement,不是标准的Statement类

关系数据模型与对象模型之间的对应关系:
表对应类,标的字段对应类的属性,记录对象对象
不存在表之间的参考关系对应类之间的参考关系

A选项中的 public void main(String [] args);
如果是public static void main(String[] args); 就不正确了,因为接口中的static方法必须有方法体
static方法必须有方法体的原因:static方法子类不能重写,所以接口中的方法如果没有方法体的化,是矛盾的
public static void main(String[] args);也就是一个普通的方法

第一次getNext(),return 1 , i的值为2; 第二次getNext(),return 2 , i的值为3; 第三次getNext(),return 3, i 的值为4

finally中如果有return语句,那么将会覆盖掉try和catch中的return语句
如果finally中没有return语句的话,在finally中,会将b变为30,但是还是会返回20,原因为:
在执行完try中的b += 10之后, b变为20,此时try中的return会将20压入栈中,但是不返回,去执行finally中的语句,finally中的语句将b增加了10,但是并没有改变栈中的b的值,执行完finally之后,b变为30,但是栈中的b的值仍然为20,然后执行return,将b返回

关于设计模式,没有弄太明白

面向对象的五大原则:
1,单一职责原则:一个类只做一件事,只有一个引起它的变化
2,开放封闭原则:对扩展开放,对修改封闭
3,里氏替换原则:子类必须能够替换其基类
4,依赖倒置原则:高层模块不依赖底层模块,都依赖于抽象
5,接口隔离原则:使用多个小的专门的接口,而不使用一个大的接口

OutOfMemoryError可以通过增加相应内存值的大小来实现
java.lang.OutOfMemoryError:nativeGetNewTLA这个异常不是只有在JRockit虚拟机的时候才会碰到

内部类:
加强了封装:B是A的内部类,那么即使对于A的private属性,B也可以访问,B本身也可以隐藏于外部
更具有可读性: 让代码更靠近使用的地方

关于内部类,静态内部类等,还没有搞清楚

C的过程,C++的函数,java的方法
非静态方法属于对象的成员,而不是类的成员

转载于:https://juejin.im/post/5b4c89535188251aff21548c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值