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)归并排序: 桶式排序、基数排序 方法在浏览器收藏夹中
尚硅谷java基础
于 2023-05-04 20:18:36 首次发布