尚硅谷java基础

1.jdk,jre,jvm的关系?jdk包含哪些,jre包含哪些?
    答:JDK : Java Development ToolKit(Java开发工具包)。JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),
    一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)
       JRE顾名思义是java运行时环境,包含了java虚拟机,java基础类库。是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的。
        jdk包含jre包含jvm。
        jdk=jre+java的开发工具
        jre=jvm+java的类库
2.基本数据类型:有8个 整型(byte1字节,short2字节,int4字节,long8字节),浮点型(float4字节,double8字节),布尔型(boolean),字符型(char1字符=2字节)
  引用数据类型:类(class),接口(interface),数组(array).
  String属于引用数据类型,使用一对“ ”。可以和boolean做运算,只能做连接运算。

3.ASCII码===》UNicode==>UTF-8
    a=97,A=65

4.基本数据类型之间的转换
    1)自动类型提升:byte b1=2;int b2=12;int b3=b1+b2;      byte,short,int,long,float,double当一个容量小和容量大的数据进行处理,用大的类型去接收。
                  byte、short、char-->int-->long-->float-->double     当byte,short,char三种变量做运算时结果为int类型,当相同的运算也是Int类型
    2)强制类型转换:自动类型提升的逆运算。double b1=12.3;int b2=(int)b1;

5.进制的转换;
    1)二进制转十进制:1,2,4,8,16,32,64,128
    2)二进制转八进制:由低往高3位数看成一位数
    3)二进制转16进制:由低往高4位数看成一位数
    4)十进制转二进制:方法一:1,2,3,8,16,32,64,128。方法二:除2取余的逆。
    5)八进制转二进制:将一位数看成三位数
    6)十六进制转二进制:将一位数看成四位数

6.加法,减法:减法同理
    1)前++:a=10;b=++a; b=11  先自增一再带入运算
       后++:a=10;b=a++; b=10  先运算再自增一
       +=: a=10;a+=2    ==> a=a+2
       short a=10;
        a=a+2;  //编译失败,应该是int类型
        a+=2;   //编译成功,*不会改变变量本身的数据类型。

7.逻辑运算符:
        1) &&必须两者必须都满足true才会执行,若左边为true,右边为false则右边则不会执行,若前面为false则后面直接不执行。
           ||同理不满足不执行。
        2)位运算符
           <<:向左移动一位,扩大两倍
           >>:向右移动一位,缩小两倍
           >>>:无符号位移动,被移动二进制最高位无论是0或者是1,空缺位都是用0补
           &:转换成二进制,对应进行&匹配
           |:转换成二进制,对应进行&匹配
           ^:当二进制对比相同时位0,不同时为1
        3)三元运算符
            结构:(条件表达式)?表达式1:表达式2        ===》条件表达式的结果为boolean类型,三元运算都可以用if-else表达

8.交换两个变量的指:
    方法一:
        a=10,b=20;
        c=a;    a=b;    b=c;

    方法二:
      a=10,b=20;
      a=a+b;    b=a-b;  a=a-b;

    方法三:    m=13,n=5;k=m^n=8;m=n^k=13;  总的公式是: m=k^n=(m^n)^n    //有局限只适合数值类型
        a=10,b=20;
        a=a^b;  b=a^b;  a=a^b;

9.(1)能被4整除且不能被100整除(如2004年是闰年,而1900年不是)
  (2)能被400整除(如2000年是闰年)
  (3)还可以看2月份天数。2月份有29日,则是闰年。

10.数组
    1)数组属于引用数据类型的变量。数组的元素,即可以是基本数据类型,也可以是引用数据类型
    2)创建数组对象会在内存中开辟一整块连续的空间
    3)数组的长度一旦确认,不能修改
    4)数组的分类:
        一:一维数组,二维数组
        二:按照数组元素的类型,基本数据类型元素的数组,引用数据类型元素的数组

11.衡量排序算法的优劣:
    1)时间复杂度:时间复杂度是一种函数,定量地描述了该算法运行的时间。既然是一种函数,就涉及到自变量与因变量。因变量代表是时间复杂的规模,自变量是时间复杂度的执行时间。
    这里的执行时间并不是秒,分钟这类的具体时间  ,它表示的是一种“执行次数”。要想计算时间复杂度首先得找到该算法中的循环,算法中循环执行的次数就是算法的时间复杂度 。
       算法的时间复杂度的具体表示为:用大写的 O 来体现算法时间复杂度如O(f(n)),称之为 大 O 记数法。
    2)空间复杂度:
        空间复杂度涉及的空间类型有:
        输入空间: 存储输入数据所需的空间大小;
        暂存空间: 算法运行过程中,存储所有中间变量和对象等数据所需的空间大小;
        输出空间: 算法运行返回时,存储输出数据所需的空间大小;
        通常情况下,空间复杂度指在输入数据大小为 N 时,算法运行所使用的「暂存空间」+「输出空间」的总体大小。
    3)稳定性:若两个A和B的关键字相等,但排序后A、B的向后次序保持不变,则称这种算法是稳定的

12.十大内部排序算法:
    1)选择排序:  直接选择排序、堆排序
    2)交换排序:  冒泡排序、快速排序
    3)插入排序:  直接插入排序、折半插入排序、Shell排序(希尔排序)
    4)归并排序:  桶式排序、基数排序
    方法在浏览器收藏夹中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值