机器学习那点事儿

1.k=20;k+=k-=k-k;求k

实际上是在考运算符的优先级。答案应该是40.

注意  举例++,++在左,操作数先加一,然后放入表达式中运算。++在右,先把操作数放入表达式运算,然后再加一。

2.class A extends DemoOne,DemoTwo{}

这样写是不对的,一个类不可以同时继承两个类,因为javaz中不支持多继承。

3.抽象类  abstract  不可以被实例化,可以继承一个类,实现多个接口。

4.重载和重写

重载(overload)是多个同名函数同时存在于一个类中,具有不同的参数个数/类型。注意重载方法的返回值都一样。所以不能用返回值区分重载方法

重写(override)是父类与子类之间多态的体现,子类中定义某方法与父类中的某方法具有相同的方法名,返回值类型和参数表,该方法被重写。新方法覆盖原有方法,所以方法重写又叫做方法覆盖。

5.集合的继承关系

6.类中的方法,可以与类同名,但是这是一个坏习惯。

7.jdbc中sql语句的执行结果存放在哪个类中?ResultSet

8.collection接口的方法

,注意compareTo()方法并不是Collection接口定义的。

9.基本数据类型的范围

byte类型整数,-128~127

short类型整数:-32768~32767

int类型整数:

long类型整数:

char类型:char=97,char='aa'都可,但是char="aa";不可以

flaot和double的区别是

在内存中占有的字节数不同
单精度浮点数在机内占4个字节
双精度浮点数在机内占8个字节
有效数字位数不同
单精度浮点数有效数字8位
双精度浮点数有效数字16位
所能表示数的范围不同
单精度浮点的表示范围:-3.40E+38 ~ +3.40E+38
双精度浮点的表示范围:-1.79E+308 ~ +1.79E+308

boolean :boolean a =null;是不对的,Boolean a=(Boolean)null;才可以。

10.java的关键字

数据类型:
Boolean(布尔型)int long short byte float double char class interface(接口)
流程控制:
if   else  do  while  for  switch  case  default  break  continue  return  try(捕获异常) catch(处理异常)  finally(有没有处理异常都执行)
修饰符:      
public  protected  private  final  void   static  strictfp(严格 精确)  abstract(抽象的    transient(短暂) synchronized(线程 同步)   volatile(易失)  native(本地)
动作:          
package  import(引入)  throw(抛出一个异常对象  throws(声明一个异常对象  可能被抛出)  extends(继承)  implements(实现)  this(本类)  super(父类 超类)  instanceof(实例) new

11.类的作用域

注意private可以被继承,但是不能被子类访问。

作用域      当前类    同一package   子孙类     其他package
public           √                  √                  √               √
protected      √                 √                  √                ×

default是同一个包下可访问。

private          √                  ×                  ×               ×

12.final static abstract

final可继承,不可重写

static不可以修饰类和构造器

abstract

13.forward与redirect的区别

也就是forward内部跳转 和redirect重定向跳转的区别

第一,forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.
redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.

第二,从数据共享来说,forward:转发页面和转发到的页面可以共享request里面的数据.,redirect:不能共享数据.

第三,从效率来说,forward:高,redirect:低.

14.error与Exception的区别

Error类和Exception类的父类都是throwable类,他们的区别是:
Error类一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢等。对于这类错误的导致的应用程序中断,仅靠程序本身无法恢复和和预防,遇到这样的错误,建议让程序终止。
Exception类表示程序可以处理的异常,可以捕获且可能恢复。遇到这类异常,应该尽可能处理异常,使程序恢复运行,而不应该随意终止异常。
Exception类又分为运行时异常(Runtime Exception)和受检查的异常(Checked Exception ),运行时异常;ArithmaticException,IllegalArgumentException,编译能通过,但是一运行就终止了,程序不会处理运行时异常,出现这类异常,程序会终止。而受检查的异常,要么用try。。。catch捕获,要么用throws字句声明抛出,交给它的父类处理,否则编译不会通过。
 

15.数据库连接池的工作原理

连接池的核心思想是连接的复用,通过建立一个数据库连接池以及一套连接使用、分配和管理策略,使得该连接池中的连接可以得到高效,安全的复用,避免了数据库连接频繁建立和关闭的开销。
连接池的工作原理主要由三部分组成,分别为连接池的建立,连接池中连接的使用管理,连接池的关闭。
第一、连接池的建立。一般在系统初始化时,连接池会根据系统配置建立,并在池中建立几个连接对象,以便使用时能从连接池中获取,连接池中的连接不能随意创建和关闭,这样避免了连接随意建立和关闭造成的系统开销。java中提供了很多容器类,可以方便的构建连接池,例如Vector,stack等。
第二、连接池的管理。连接池管理策略是连接池机制的核心,连接池内连接的分配和释放对系统的性能有很大的影响。其策略是:
当客户请求数据库连接时,首先查看连接池中是否有空闲连接,如果存在空闲连接,则将连接分配给客户使用;如果没有控线连接,则查看当前所开的连接数是否已经达到最大连接数,例如如果没有达到就重新创建一个请求的客户;如果达到,就按设定的最大等待时间进行等待,如果超出最大等待时间,则抛出异常给客户。
当客户释放数据库连接时,先判断该连接的引用次数是否超过了规定值,如果超过了就从连接池中删除该连接,否则就保留为其他客户服务。该策略保证了数据库连接的有效复用,避免了频繁建立释放连接所带来的系统资源的开销。
第三、连接池的关闭。当应用程序退出时,关闭连接池中所有的链接,释放连接池相关资源,该过程正好与创建相反。

转自(http://www.cnblogs.com/newpanderking/p/3875749.html)

猜你喜欢

转载自blog.csdn.net/beyond_2016/article/details/81187332