zoukankan      html  css  js  c++  java
  • Java基础点滴

    1. 关于interface的定义

    [修饰符] interface 接口名 [extends 父接口名列表]{

    [public] [static] [final] 常量;
    [public] [abstract] 方法;
    }

    注意,斜体的部分代表是缺省的,默认的,即便声明的时候不写,也会在编译时默认加上。尤其是常量需要注意,继承的子类不能修改接口中声明的常量。另外,修饰符写与不写都是public访问权限,因为接口中的方法永远是public权限的。

    2 this与super

    序号 区别点 this super
    1 属性访问 访问本类中的属性,如果本类中没有此属性,则从父类中继续查找 访问父类中的属性
    2 方法 访问本类中的方法,如果本类中没有此方法,则从父类中继续查找 直接访问父类中的方法
    3 调用构造 调用本来构造,必须放在构造方法的首行 调用父类构造,必须放在子类构造方法的首行
    4 特殊 表示当前对象 无此概念

    3 方法的重载与覆写的区别

    序号 区别点 重载(Overload) 覆写(Override)
    1 定义 方法名称相同,参数的类型或个数不同 方法名称,参数的类型,返回值类型全部相同
    2 权限 对权限没有要求 被覆写的方法不能拥有更严格的权限
    3 范围 发生在一个类中 发生在继承类中

    4 同步机制

    在多线程中,会使用到同步机制,使得一个task任务变为一个在生命周期上不可分割的Atom单位(这是因为多线程的Thread所对应的基本执行单位可以为for循环内的 i 单位 或是Thread.sleep()这样的线程单位),从而避免产生由多线程机制所引发的难以预料的不良后果。同步关键字为sychronized,使用方式有两种。一种为同步代码块方式,格式为sychronized(同步对象){需要同步的代码},这里的同步对象指的是所对应的执行线程,可以为当前执行线程this,也可以指定一种可能遇到的线程的引用。另一种方式为同步方法,使用sychronized关键字将一个方法声明成同步方法。两种方式可以实现同样的效果。但是,前一种方式似乎更为灵活,可以实现更为广泛的场景,但也正因如此,也容易产生滥用或者失误,导致死锁的现象发生。如:sychronized(this){task satements;}可以等价描述为this.taskName(); public sychronized void taskName(); 

    5 泛型

    泛型的基本定义格式:

    [访问权限] class 类名称<T1, T2, ..., Tn>{ //T代表泛型类型标识

           [访问权限] T 变量名称;

          [访问权限] T 方法名称(){};

          [访问权限] 返回值类型声明 方法名称(T 变量名称){};

    }

    通配符?可以替代T,但是需要保持一致性。泛型上限:类名<? extends 类> 对象  。 泛型下限:类名 <? super 类> 对象 。注意,泛型类型不能向上转型,因为如果将子类泛型变为父类类型,则表示扩大了子类的内容。泛型接口:iterface Info<T>{public T getVar();}  

     高质量泛型文档

    java中length属性,length()方法和size()的方法的区别

    1.length属性是针对Java中的数组来说的,要求数组的长度可以用其length属性;
    2.length()方法是针对字符串来说的,要求一个字符串的长度就要用到它的length()方法;
    3.java中的size()方法是针对泛型集合说的,如果想看这个泛型有多少个元素,就调用此方法来查看!

    Cannot refer to a non-final variable param inside an inner class defined in a different method

    如果定义一个局部内部类,并且局部内部类使用了一个在其外部定义的对象,编译器会要求其参数引用是final呢。
    注意:局部内部类,包括匿名内部类。一旦参数在匿名类内部使用,则必须是final

    public String selectWhitParam(final Map<String, Object> param){
    return new SQL(){
    {
    SELECT("*");
    FROM("tb_employee");
    if(param.get("id") != null){
    WHERE(" id = #{id} ");
    }

    ...

    Java编程思想第四版环境部署

    http://blog.csdn.net/u013573789/article/details/45287941

    http://blog.csdn.net/realizelizijun2013/article/details/39701155

    http://blog.csdn.net/u014737138/article/details/52289311
     
     
    java 编译异常 : Exception in thread "main" java.net.UnknownHostException: file

    这个问题确实是由较高版本的JDK编译的Java class文件试图在较低版本的JVM上运行产生的错误。

        1、解决措施就是保证jvm(Java命令)和jdk(javac命令)版本一致。如果是Linux版本,则在命令行中分别输入java -version和javac -version命令来查看版本是否一致。这里假设都是1.7版本。

        2、如果都一致,但还是解决不了问题,那么你肯定不是直接在命令行中用javac来编译的,而是用类似于eclipse、netbeans这样的编译器来编译的。因为很多编译器都自带javac,而不是采用操作系统中的编译器。如果你的编译器是eclipse的话,那么需要在项目的属性里设置jdk版本,方法是右击项目-->properties-->java compiler --> Enable project specific settings -->将compiler compliance level设置为1.7,也就是与jvm一致的版本(在命令行中java -version所显示的版本)。

        综上,如果你是用编译器来编译的话,请首先确保编译器自带的jdk版本是否和操作系统中的java版本一致。

    (参考: http://blog.csdn.net/chen110juan/article/details/47272537)

    Jar包下载:http://www.java2s.com/Code/Jar/

    applet插件安装

    http://blog.csdn.net/suxiang198/article/details/48208019

  • 相关阅读:
    user-agent
    java8中的stream().filter()的使用和Optional()
    hibernate中复合主键的使用
    HikariCP和spring-boot-devtools了解
    springboot与springcloud的版本问题
    libSVM简介及核函数模型选择
    支持向量机:Numerical Optimization,SMO算法
    SVM计算过程,对偶形式,核函数
    SVM入门——线性分类器的求解,核函数
    【转】SVM入门(一)SVM的八股简介
  • 原文地址:https://www.cnblogs.com/ioveNature/p/6530810.html
Copyright © 2011-2022 走看看