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(){}});

    未完待续。。。

  • 相关阅读:
    浅谈servlet源码
    移动端测试的8大过程
    Pc端微信加群和app端加群测试用例设计点
    视频播放的用例设计点
    发红包的测试用例设计点
    朋友圈点赞用例设计点
    ADB
    语音 小说 逻辑
    nginx
    Jenkins—安装与简单使用
  • 原文地址:https://www.cnblogs.com/nannanITeye/p/3304395.html
Copyright © 2011-2022 走看看