zoukankan      html  css  js  c++  java
  • 随笔java面试基础

    转:http://blog.csdn.net/wenwen360360/article/details/54969418

    Application

    ―Java应用程序”是可以独立运行的Java程序。
    由Java解释器控制执行。

    Applet

      ―Java小程序”不能独立运行(嵌入到Web页中)。
      由Java兼容浏览器控制执行。

    Serverlets

    是Java技术对CGI 编程的解决方案。
    是运行于Web server上的、作为来自于Web browser 或其他HTTP client端的请求和在server上的数据库及其他应用程序之间的中间层程序。
    Serverlets的工作是:
    读入用户发来的数据(通常在web页的form中)
    找出隐含在HTTP请求中的其他请求信息(如浏览器功能细节、请求端主机名等。
    产生结果(调用其他程序、访问数据库、直接计算)
    格式化结果(网页)
    设置HTTP response参数(如告诉浏览器返回文档格式)
    将文档返回给客户端。

    子类、父类代码块执行顺序

    1、静态代码块、静态变量是和类相关的,会随着类的加载而执行,且在类的生命周期内只执行一次;
    2、非静态代码块、非静态变量是和对象相关的,每构造一个对象就会执行一次;
    执行顺序:
    执行父类的静态成员(变量和代码块,执行顺序根据编写的代码顺序执行)-->执行子类的静态成员(变量和代码块,执行顺序根据编写的代码顺序执行)-->执行父类的非静态成员(变量和代码块,执行顺序同上)-->执行父类的构造函数-->执行子类的非静态成员(变量和代码块,执行顺序同上)-->执行子类的构造函数

    重载

    函数重载指的是:函数名相同,但是参数不同。这里的参数不同指的是以下几种情况:
    1. 形参类型不同;
    2. 形参个数不同;
    这里需要注意的是,函数重载不能基于返回值类型来实现,原因很简单,首先我们需要知道函数重载的实现原理:
    某个语言(如C++、java)支持函数重载的原因是,它们将函数的参数作为函数名的一部分编译到了底层语言中,因此,重载的函数就可以基于参数的不同(类型和个数)来区分不同的重载函数。例如:
    public void add(int x,int y, int z) --编译以后--> add@int@int@int
    public void add(double x, double y ,double z)--编译以后-->add@double@double@double;
    pubic  int   add(int x, int y, int z) --编译以后-->add@int@int@int    //和第一个函数冲突,如果第一个函数在基类中,那么这个函数会覆盖(不是重载!!!)第一个函数。
    函数的返回值不会参与函数名的编译过程,因此,不能基于函数返回值来重载函数。
     

    数据类型自动转换

    数据类型的转换,分为自动转换和强制转换。自动转换是程序在执行过程中 “ 悄然 ” 进行的转换,不需要用户提前声明,一般是从位数低的类型向位数高的类型转换;强制类型转换则必须在代码中声明,转换顺序不受限制。

    自动数据类型转换

    自动转换按从低到高的顺序转换。不同类型数据间的优先关系如下: 
        低 ---------------------------------------------> 高 
        byte,short,char-> int -> long -> float -> double

    运算中,不同类型的数据先转化为同一类型,然后进行运算,转换规则如下:

    强制数据类型转换

    强制转换的格式是在需要转型的数据前加上 “( )” ,然后在括号内加入需要转化的数据类型。有的数据经过转型运算后,精度会丢失,而有的会更加精确

    float可以自动转化double,但是反过来得强制转化

  • 相关阅读:
    tf.function :图执行模式(转载)
    TFRecord:TensorFlow 数据集存储格式(转载)
    tf.keras.Model和tf.keras.Sequential
    tf.keras.Input
    IOS逆向-砸壳笔记
    ios调试-查看日志
    用xcode9编译出ios越狱机程序使用的dylib
    docker运行中的container怎么修改之前run时的env
    (转)解决类似 /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found 的问题
    (转) mysql中left join,right join,inner join的区别
  • 原文地址:https://www.cnblogs.com/wym789/p/7992233.html
Copyright © 2011-2022 走看看