八个基本类型:
项目 | 位数 | 类型 | 描述 |
---|---|---|---|
boolean | 1 | 布尔型 | boolean数据类型表示一位的信息; |
byte | 8 | 整型 | byte 数据类型是8位、有符号的,以二进制补码表示的整数; |
char | 16 | 字符型 | char类型是一个单一的 16 位 Unicode 字符; |
short | 16 | 整型 | short 数据类型是 16 位、有符号的以二进制补码表示的整数 |
int | 32 | 整型 | int 数据类型是32位、有符号的以二进制补码表示的整数; |
float | 32 | 浮点型 | float 数据类型是单精度、32位、符合IEEE 754标准的浮点数; |
long | 64 | 整型 | long 数据类型是 64 位、有符号的以二进制补码表示的整数; |
double | 64 | 浮点型 | double 数据类型是双精度、64 位、符合IEEE 754标准的浮点数; |
自动装箱:简单来说就是以上八种基本类型在需要的时候自动装箱为封装类型的过程。
自动拆箱:与之对应的就是数据从封装类型自动转换为基本类型的过程!
//例如:
Integer x = 2; // 装箱
int y = x; // 拆箱
八种数据类型拆箱和装箱对应表:
基本类型 | 封装类型 |
---|---|
int | Integer |
char | Character |
boolean | Boolean |
long | Long |
short | Short |
float | Float |
byte | Byte |
double | Double |
Integer i= new Integer(100);
Integer j= new Integer(100);
System.out.print(i==j); //false
b.Integer变量和int变量比较时,只要两者的值是相同的,结果就为true;
Integer i= new Integer(100);
int j= 100;
System.out.print(i==j); //true
c.非new生成的Integer变量和new Integer()生成的变量也不相等;
Integer i= new Integer(100);
Integer j= 100;
System.out.print(i==j); //false
d.对于两个非new生成的Integer对象,进行比较时,如果两个变量值在-128到127之间时为true,否则为false;
Integer i= 100;
Integer j= 100;
System.out.print(i==j); //true
Integer i= 128;
Integer j= 128;
System.out.print(i==j); //false
静态变量,成员变量,局部变量三种;
public static void main(String args[]) {
@SuppressWarnings("resource")
Scanner input = new Scanner(System.in);
System.out.println("请输入十进制数!");
Integer i = input.nextInt();
String binary = Integer.toBinaryString(i); //十进制转二进制
String octal = Integer.toOctalString(i); //十进制转八进制
String hex = Integer.toHexString(i); //十进制转十六进制
System.out.println("i的二进制数是:"+binary);
System.out.println("i的八进制数是:"+octal);
System.out.println("i的十六进制数是:"+hex);
System.out.println("请输入进制数!");
Integer j = input.nextInt();
int t = Integer.parseInt(String.valueOf(j),2); //二进制转十进制
int b = Integer.parseInt(String.valueOf(j),8); //八进制转十进制
int s = Integer.parseInt(String.valueOf(j),16); //十六进制转十进制
System.out.println("j的十进制数是:"+t);
System.out.println("j的十进制数是:"+b);
System.out.println("j的十进制数是:"+s);
input.close(); //必须要写
}
public static void main(String args[]) {
int a[] = new int[20];
for(int i = 0; i < 20; i++) {
a[i] = getRe(i); }
System.out.println("数组是:");
for (int i = 0; i < a.length; i++) {
System.out.println(a[i] + "\t");} }
private static int getRe(int n){
if (n==0||n==1) {return 2;}
else return getRe(n-2) + getRe(n-1);
}
//进行冒泡排序(升序排列)
int temp = 0;
//如果length太大,提出来单独定义,有利于提高程序效率!
//为养成良好的代码习惯,建议将length提出来
int m = a.length;
for(int j = 0 ;j < m ;j++){
for(int k = 0;k < m-j-1 ;k++) {
if (a[k+1] < a[k]) {
temp = a[k];
a[k] = a[k+1];
a[k+1] = temp;
} } }
@SuppressWarnings("resource")
Scanner input = new Scanner(System.in);
int i = input.nextInt(); //输入数组长度
int []a = new int[i]; //定义数组
System.out.println("请输入数组数据");
@SuppressWarnings("resource")
Scanner in = new Scanner(System.in);
for(int j = 0; j < a.length; j++) {
a[j]=in.nextInt(); }
System.out.print("未排序的数组是:");
for(int k = 0; k < a.length; k++) {
System.out.print(a[k]+" "); }
System.out.println("反转后的字符串是:");
for(int i = str.length(); i > 0; i--){
System.out.print(str.charAt(i-1));}
字符串替换(将所有c换为0.0):
System.out.println(str.replaceAll("c", "0.0"));
public static void main(String args[]) {
Date dat = new Date();
int y = dat.getYear();
int M = dat.getMonth();
int d = dat.getDay();
int h = dat.getHours();
int m = dat.getMinutes();
int s = dat.getSeconds();
System.out.println("当前时间是"+y+"年"+M+"月"+d+"日"+h+":"+m+":"+s); }
关于数据库的笔试题面试题考的最关键的还是运用,要么写出语句让你说明它的作用,要么给你一个要求让你用数据库语句写出来!关于一些理论性的问题以下是我遇到的。
索引是对数据库表中一或多个列的值进行排序的结构,是帮助数据库高效获取数据的数据结构;简单理解为数据库中加快检索表中数据的方法;
是并发控制的基本单位,所谓事务,他就是个操作序列,这些操作要么不执行,要么全部执行,是一个不可分割的工作单位;是数据库维护数据一致性的单位,在每个事务结束是,都能保持数据一致性;
三者都表示删除;
Delete和truncate只删除表中的数据,不删除表的数据结构;
执行速度:drop>truncate>delete
一般在删除整个表的时候用drop,只删除部分数据行的时候用delete,而删除表中所有数据的时候用truncate;
视图是一种虚拟的表,具有和物理表相同的功能。可以对视图进行增、改、查、操作;优点是获取数据更容易;
第一范式(1NF):数据库表中的字段都是单一属性的,不可在分的;这个单一属性由基本类型构成,包括整型,实数,字符型,逻辑型,日期型等;
第二范式(2NF):数据库表中不存在非关键字段对任意候选关键字的部分函数依赖;即所有非关键字段都完全依赖于任意一组候选关键字;
第三范式(3NF):在第二范式的基础上,数据库表中不存在非关键字段对任意候选字段传递函数依赖;
1.create table lee(id number primary key not null) 建表;
2.create view_name lee select *from Table_name; 建立视图;
3.create unique index lee_name on lee(name); 建立索引;
4.drop index lee_name on lee; 删除索引
5.insert into lee values(“12”,“一班”,“”); 插入数据
6.update lee set 年龄=“20” where 姓名=“李凡”and 学号“1234” 数据更新;
7.select * from lee; 查询lee表中的数据;
8.select * into 学生 from lee; 查询lee表中的数据并插入到学生表
A.主键约束在表中定义一个主键值,这是唯一确定表中每一行数据的标识符。该约束强制实体完整性。一个表中最多只有一个主键,且主键列不允许空值。
B.UNIQUE(唯一性)约束指定表中某个列或多个列不能有相同的两列或两行以上的数据存在。这种约束通过实现唯一性索引来强制实体完整性。当表中已经有了一个主键约束时,如果要在其他列上实现实体完整性,又因为表中不能有两个或两个以上的主键约束,所以只能通过创建UNIQUE约束来实现。一般的,把UNIQUE约束称为候选的主键约束。
A.逻辑模式:也称模式,它是对数据库中数据的整体逻辑结构和特征的描述;
B.外模式:也称子模式,它是对各个用户或程序所涉及到的数据的逻辑结构和数据特征的描述。
C.内模式:也成存储模式或者物理模式,它是对数据的内部表示或底层描述;
数据结构、数据操作、数据约束条件;
是对特定问题求解步骤的一种描述。它是指令的有效序列,其中每条指令表示一个或者多个操作。
算法应具有以下五种特性:有穷性、确定性、有效性、输入、输出;
所要达到的目标:正确性、可读性、健壮性、高效性;
栈:先进后出;
队列:先进先出;
先序遍历:根左右; 中序遍历:左根右; 后续遍历:左右根;
Linux可以说是博大精深,关于Linux的面试题遇到的不是很多,但是如果想走后端开发的,Linux还是很重要的!作者目前对Linux的研究还仅限于cd 和ls 。
在这就附上两个很不错的网址吧,自认为很适合新手学习Linux基础,也花不了多少时间。
实验楼Linux学习,作者亲验
实验楼Linux基础命令学习,作者亲验
不论是学习还是面经都是很不错的选择,后悔没有在求职之前好好看,在这分享出来给大家:
宝库一
宝库二
后面还会分享作者秋招遇到的面试笔试题(或许还有春招),简历投了一打,面试了一堆
这是秋招篇Java研发工程师面试题(秋招篇)
声明:本文所有面试的问题都是作者在实习求职期间自己遇到并总结出来的面经,答案有的摘自博客有的看书所得,不一定都能适用,希望对后来的小伙伴们有所帮助。真心感谢网上分享经验的大佬们!才疏学浅,如有错误,望指正!谢谢!