java面试第二天
局部变量:不是声明在类体括号里面的变量
(1)必须要先赋值,后使用,否则通不过编译,局部变量没有默认初始化值
(2)作用范围:定义开始到定义它的代码块结束
(3)同一范围内,不允许2个局部变量命名冲突
参数传递时,简单类型进行值转递 (参数进行传递时都会先去栈中生成一个副本的,使用结束后释放)
自动类型提升:
byte a = 1;
byte b = 2;
a = a+b; //编译出错自动类型提升成int
a += b; //自加没有自动类型提升问题
类型自动提升规则:
a和b作某种运算
a和b中有double,结果就是double
a和b中有float,结果就是float
a和b中有long,结果就是long
除此之外,结果都是int
把高字节转成低字节,需要作强制类型转换. byte c=(byte)a+b;
移位运算符:效率最高
>> 有符号右移,补符号位
移负数位,则将该数值加32后再进行移位
数值的2进制是按照补码保存的
>>> 右移后高位都补0
逻辑运算符:
&/|也可以作为逻辑运算符
&& 先判断前面一个条件,如果为假,则不用计算后一个条件
|| 先判断前面一个条件,如果为真,则不用计算后一个条件
" + "运算符:
两个操作的对象是数值时,是加法
如果有一个是字符串时,则是字符串的连接
流程控制语句:
同Core C++
switch中的变量类型只能是byte、 short、int、char四种类型以及enum类型
switch(exp) exp 可以是整形表达式或者enum类型数据
数组:
声明数组:
数组能以下列形式声明:
类型[] array;
类型 array[];
注:
JAVA中推荐用:类型[] array;
一个数组是一个对象
声明一个数组没有创建一个对象
声明时不用指定长度
创建数组:
创建基本数据类型数组:int[] i = new int[2];
创建引用数据类型数组:Student[] s = new Student[100];
数组创建后其中的元素有初始值
类型 黙认值
byte 0
short 0
int 0
long 0l
float 0.0f
double 0.0d
char \u0000
boolean false
reference types null
注:
创建时一定要指定长度
int[] i2=new int[]; //error
初始化数组:
声明、创建、初始化分开:
int[] i; //定义数组
i = new int[2]; //分配空间
i[0] = 0; //初始化
i[1] = 1;
声明、创建、初始化在同一时间 :
int[] i = {0,1}; //显示初始化 {}中有几个值,则数组长度为几
Student[] s = {new Student(),new Student()};
注: int[] i=new int[]{1,2,3}; //后面[]中不可以写数值
int[] i1=new int[3]{1,2,3}; //error
二维数组:(其实是一个一维数组,它的每一个元素又是一个一维数组)
int[][] i1 = new int[2][3];
int[][] i4 = {{1,1,1},{2,2,2},{3,3,3}};
int[][] i3 = new int[][3]; //不允许高维没分配空间而先给低维分配空间
int[][] i2 = new int[2][];
i2[0] = new int[2];
i2[1] = new int[3];
数组长度:
数组的属性length
数组长度一旦确定,不可改变
int[] i = new int[5]; 则i.length= 5
数组拷贝:
系统类System提供的
static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
src: 源数组
srcPos: 从源数组哪个位置开始拷贝(位置指的是元素的下标)
dest: 目标数组
destPos: 拷贝的元素放到目标数组的起始位置
length: 拷贝多少个
数组排序:
自己实现一个排序方法来进行排序
或者调用java.util.Arrays.sort(Object o)
java面试第二天的更多相关文章
- JAVA面试中问及HIBERNATE与 MYBATIS的对比,在这里做一下总结
我是一名java开发人员,hibernate以及mybatis都有过学习,在java面试中也被提及问道过,在项目实践中也应用过,现在对hibernate和mybatis做一下对比,便于大家更好的理解和 ...
- 转:最近5年133个Java面试问题列表
最近5年133个Java面试问题列表 Java 面试随着时间的改变而改变.在过去的日子里,当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试,但是现在问题变得越来 ...
- java面试宝典(蓝桥学院)
Java面试宝典(蓝桥学院) 回答技巧 这套面试题主要目的是帮助那些还没有java软件开发实际工作经验,而正在努力寻找java软件开发工作的学生在笔试/面试时更好地赢得好的结果.由于这套试题涉及的范围 ...
- JAVA面试精选【Java基础第一部分】
这个系列面试题主要目的是帮助你拿轻松到offer,同时还能开个好价钱.只要能够搞明白这个系列的绝大多数题目,在面试过程中,你就能轻轻松松的把面试官给忽悠了.对于那些正打算找工作JAVA软件开发工作的童 ...
- Java面试必备知识
JAVA面试必备知识 第一,谈谈final, finally, finalize的区别. 第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可 ...
- java面试和笔试大全 分类: 面试 2015-07-10 22:07 10人阅读 评论(0) 收藏
2.String是最基本的数据类型吗? 基本数据类型包括byte.int.char.long.float.double.boolean和short. java.lang.String类是final类型 ...
- 近5年133个Java面试问题列表
Java 面试随着时间的改变而改变.在过去的日子里,当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试,但是现在问题变得越来越高级,面试官问的问题也更深入. 在我 ...
- java 面试
115个Java面试题和答案——终极列表(上) 本文我们将要讨论Java面试中的各种不同类型的面试题,它们可以让雇主测试应聘者的Java和通用的面向对象编程的能力.下面的章节分为上下两篇,第一 ...
- JAVA面试中问及HIBERNATE与 MYBATIS的对比,在这里做一下总结(转)
hibernate以及mybatis都有过学习,在java面试中也被提及问道过,在项目实践中也应用过,现在对hibernate和mybatis做一下对比,便于大家更好的理解和学习,使自己在做项目中更加 ...
随机推荐
- URAL 1837. Isenbaev's Number (map + Dijkstra || BFS)
1837. Isenbaev's Number Time limit: 0.5 second Memory limit: 64 MB Vladislav Isenbaev is a two-time ...
- java swing MenuItem乱码处理
用java开发一个带有托盘图标的程序, 其它模块的中文显示都是正常的,就只有托盘中点击小图标时弹出的菜单中的中文是方框(中文方块) 解决: 1: 在你的具有main函数的类也即你应用运行的主类上点击右 ...
- Java Date 时分秒置0
Date now = new Date(); Calendar cal1 = Calendar.getInstance(); cal1.setTime(now); // 将时分秒,毫秒域清零 cal1 ...
- Redis 性能问题的记录
最近线上使用redis, 查询的情况不甚理想, 这个查询操作是个 lua 脚本, 包含如下操作 开发机 redis, 没有其他干扰, 插入的 zset 有 5000 member 左右, 使用的 re ...
- eclipse的块选择模式
第一步:Alt+shift+a打开Toggle Block Selection Mode(块选择模式开关) 第二步:点击Toggle Block Selection 第三步:选择多行,同时编辑
- Windows7安装CodeTyphon
WARNING 1: On windows (XP, Vista and Win7), you must install this software as user with administrato ...
- mysql deadlock found when trying to get lock 问题排查
mysql deadlock found when trying to get lock 问题排查 1 获 取锁等待情况 可以通过检查 table_locks_waited和table_locks_i ...
- scrapy框架系列 (4) Scrapy Shell
Scrapy Shell Scrapy终端是一个交互终端,我们可以在未启动spider的情况下尝试及调试代码,也可以用来测试XPath或CSS表达式,查看他们的工作方式,方便我们爬取的网页中提取的数据 ...
- C#高级编程六十六天----表达式树总结【转】
https://blog.csdn.net/shanyongxu/article/details/47257139 表达式树总结 基础 表达式树提供了一个将可执行代码转换成数据的方法.如果你要在执行代 ...
- 使用checkstyle来规范你的项目
Checkstyle是什么 自从做了程序员,关于格式化的讨论就不曾中断过,到底什么才是正确的,什么才是错误的,到现在也没有完整的定论.但随着时间发展,渐渐衍生出一套规范出来.没有什么绝对的正确和错误, ...