zoukankan      html  css  js  c++  java
  • java学习笔记之基础知识

    1、class不加修饰符默认default,只在当前包里能用。

    2、构造函数前面的修饰符的作用类似class的,限制引用的权限。

    3、java对象的创建其实就是类的实例化,类的实例化就是在堆上copy整个类的成员变量和方法,然后调用相应的构造函数初始化,对象的名字其实就是一个引用,指向实例化的类,对象名保存在栈里。

    4、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?
      可以有多个类,但是只能有一个public类,并且该public类名与文件名相同。

    5、&和&&的区别?

    都能做为逻辑与的作用,但是if(null!=str && str.equals(""))和if(null!=str & str.equals(""))是有区别的,前面一种&&只要第一个条件判定为false,第二个条件就不会判断;&则两个条件都会判断,所以如果str是null的话会抛出NullPointerException异常。&还能做 位 运算符。

    6、final关键词修饰的变量是值不能改变,还是引用不能改变?

            final int n=100;//n不能再赋其它值了
            final String ss="hello";//ss不能再赋值了
            final StringBuilder sb=new StringBuilder("hello");
            sb.append("world");//sb可以改变值,但是不能重新修改引用的值,比如:sb=new StringBuilder("world")

        所以 void f(final StringBuilder sb){}  这种赋参数的方式的并不能保证参数不会在方法里面不能修改。

    7、java中方法的重载overload跟返回值类型和修饰符无关,但是方法名一定相同,参数一定不能相同;如果参数相同则不知道调用哪个,会报错。

    java中的override是重写父类的方法,那么该类的对象调用该方法时就会调用自己的,而不是父类的。

    8、java中实现线程操作的几种方法:

    (1)继承自Thread类,重写run()方法,对象.start()启动线程;

    (2)new Thread(new Runnable(){}).start();继承自接口Runnable,并且实现run()方法,就可以创建线程了;

    (3)线程池操作,pool=Executors.newFixedThreadPool(poolSize);pool.execute(new Thread());

    还有其它种类线程池,如:

    Executors.newCachedThreadPool().execute(new Runable(){publicvoid run(){}});

    Executors.newSingleThreadExecutor().execute(new Runable(){publicvoid run(){}});

    未完待续。。。

  • 相关阅读:
    bzoj 1026
    mysql索引面试题
    Mybatis基础,动态sql (mybatis中的重点)
    Mybatis基础,利用mybatis实现复杂查询,多对一,一对多
    Mybatis基础:注解开发,面向接口(引出三个面向的区别)
    Mybatis基础,limit分页,和RowsBounds分页,分页插件
    Mybatis基础,日志工厂
    Mybatis基础一,生命周期,和作用域,resultMap(结果集映射)
    Mybatis配置解析三,typeAliases(别名),setting(设置)
    浅谈JPA
  • 原文地址:https://www.cnblogs.com/nannanITeye/p/3304395.html
Copyright © 2011-2022 走看看