Java基础相关总结
临近面试,权当复习了吧
- final相关
- 定义常量的方法 eg:final int i=0;//则i不能被修改
- final修饰的类不能被继承,因此没有子类,且它的类中的方法默认是final
- final方法不能被子类覆盖,但可以被继承(父类不是final类,父类中的方法是final修饰的)
- final不能用于修饰构造方法。
2. static相关
- static修饰的变量放在方法区,只有一份。地址不能改变,但内容可以改变。
- 静态的成员变量,可以通过new一个对象访问,也可以通过类名访问,但一般建议用类名访问,又叫做类变量。(非静态成员变量只能通过new对象访问)
- 静态方法在加载类的时候就被加载到方法区里。
3. 构造方法、重载、覆盖相关
- 当自己写了构造方法之后,系统不会再提供无参的构造方法。
- 重载是某一确定类中,方法名相同,但方法的参数类型和参数个数不同
- 覆盖是子类重写父类的方法,其方法名、方法参数类型和参数个数都与父类方法相同。
- 在一个两参的构造方法中可以调用一个一参的构造方法或者无参的构造方法。如下:
public class test_main extends father {
public static void main(String[] args) {
// TODO Auto-generated method stub
test_main test_main = new test_main(3,5);
}
public test_main(int i) {
System.out.println("test_main.test_main()一参构造方法"+i);
}
public test_main(int i,int j){
this(i);
System.out.println("test_main.test_main()两参构造方法"+i+j);
}
}- 显示初始化:当父类没有提供默认构造函数时,子类必须在构造函数时通过super(...)。
public class father {
public static int a=0; // public father() {
// System.out.println("father.father()");
// // TODO Auto-generated constructor stub
// }
public father(int i){
System.out.println("father.father()"+i);
} }
public class test_main extends father {
//static final String a="ha";
public static void main(String[] args) {
// TODO Auto-generated method stub //test_main test_main = new test_main(3,5);
//System.out.println("test_main.main()"+father.a);
//father fat = new father();
//System.out.println("test_main.main()"+fat.a); //a="hah";
test_main test_main = new test_main(1); } public test_main(int i) {
super(i);
System.out.println("test_main.test_main()一参构造方法"+i);
}
public test_main(int i,int j){
this(i);
System.out.println("test_main.test_main()两参构造方法"+i+j);
}
4. 域的访问控制权限
- public修饰的,无论是否在同一包中,都可以直接通过对象名访问
- private只有在同一个类中访问
- protected在本类、子类、同包的其他类都可以访问
- 默认的是包访问控制权限,只对同一包中的类开放
5,包的作用、类的重名问题
- 不同的包下建立同名类,new对象时会自动导包,没有包名则无法导包。(不同的包下可以有同名类,同一包下不能有同名类)
- 包的作用是,区分同命名的类,默认的安全机制
- 任何一个类名都应该是包名+类名。
6,多态问题、
- 多态的产生条件,要有继承关系,要有方法覆盖,父类的引用指向子类的对象。
- 向上转型默认帮转,向下转型要强转(程序员已知该类是其子类的情况下转型的)
7,Java object和String
- String str=new String(bytes);可以将字符转化为字符串。
- string的equal重写了Object的equal方法,用来判断内容是否相等。
- tolowerCase(),将大写字母转为小写。
- contact(string)连接两个字符串。
- clone()方法,分浅拷贝与深拷贝两种。浅拷贝是指新变量仍指向原来的变量,此时更改变量内容,对两个变量都有影响;深拷贝则是与原来完全不同的对象。
8,基本数据类型及操作
- byte一个字节,short两个字节,int四个字节,long八个字节;float四个字节,double八个字节。
- 默认整数是int型,小数默认是double型。
- 默认转换:byte,short,char—int—long—float—double;(byte,short,char相互之间不转换,他们参与运算首先转换为int类型)
byte b1=3,b2=4,b;
b=b1+b2;//此句编译失败,byte型变量参与运算会默认转为Int型。而b是byte型
b=3+4; byte b1=3,b2=4;
int b;
b=b1+b2;
b=3+4;//这时候才编译正确- char型参与算数运算,默认转为Int型
char a='a';
int b;
b=a+3;
System.out.println("test_main.main()"+b);//打印结果为100- 小练习,byte b = 130;有没有问题?如果我想让赋值正确,可以怎么做?结果是多少呢?
byte b=(byte) 130;//从int转为byte需要强转
位运算符
<< 左移 空位补0,被移除的高位丢弃。
>> 右移 被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,最高位补1。
>>> 无符号右移 被移位二进制最高位无论是0或者是1,空缺位都用0补
& 与运算 6 & 3 = 2
| 或运算 6 | 3 = 7
^ 异或运算 6 ^ 3 = 5
~ 反码 ~6 = -7- 将x,y交换,不引入第三变量
x=x^y;
y=x^y;
x=x^y;- 三目运算(是有返回值的)
(x>y)?x:y //x>y则返回结果为x.
算数优先级 ‘+’的优先级大于'=='
Java基础相关总结的更多相关文章
- Java基础相关
对老师上课内容进行总结: 1.新建一个Java项目,并命名为HelloWorld 然后再新建类,并命名为HelloWorld,注意红色画圈部分 若勾选,则新建类开头为(“//后的内容为老师所讲批注”) ...
- Java基础知识【下】( 转载)
http://blog.csdn.net/silentbalanceyh/article/details/4608360 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...
- Java基础知识【上】(转载)
http://blog.csdn.net/silentbalanceyh/article/details/4608272 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...
- 100道Java基础面试题收集整理(附答案)
不积跬步无以至千里,这里会不断收集和更新Java基础相关的面试题,目前已收集100题. 1.什么是B/S架构?什么是C/S架构 B/S(Browser/Server),浏览器/服务器程序 C/S(Cl ...
- JAVA基础部分复习(一、8中基础类型,以及String相关内容)
以下是关于java中8种基本类型的介绍说明: package cn.review.day01; /** * java基础复习,8种数据类型 * (byte,short,long,int,double, ...
- 【Java基础】String 相关知识点总结
String 相关知识点总结 字符串的不可变性 概述 String 被声明为 final,因此它不可继承 在 Java8 中,String 内部使用 char 数组存储数据 public final ...
- Java基础知识(壹)
写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...
- [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)
如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html 谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...
- 【JAVA面试题系列一】面试题总汇--JAVA基础部分
JAVA基础 基础部分的顺序: 基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法 线程的语法,集合的语法,io 的语法,虚拟机方面的语法 每天几道,持续更新!! 1.一个". ...
随机推荐
- jquery插件-表单验证插件-rules
ruels方法 1说明:查看.新增.移除一个表单控件的验证规则 2使用: 表单控件.rules(); 参数: rules() 返回元素的验证规则 rules('add',rules) 增加验证规则 r ...
- PHP漏洞全解
针对PHP的网站主要存在下面几种攻击方式: 1.命令注入(Command Injection) 2.eval注入(Eval Injection) 3.客户端脚本攻击(Script Insertion) ...
- [U3D 添加大地、天空,用第一视角看看自己做的世界]
1.添加大地.天空. 在下方Assets文件夹里右键,导入素材包. Terrain(地形)和Skybox(天空盒子) 2.选中左边的Terrain,在inspector里,选择中间的刷子(地形),还有 ...
- MyBatis详解 与配置MyBatis+Spring+MySql
MyBatis 是一个可以自定义SQL.存储过程和高级映射的持久层框架.MyBatis 摒除了大部分的JDBC代码.手工设置参数和结果集重获.MyBatis 只使用简单的XML 和注解来配置和映射基本 ...
- oracle修改表字段名时报错:ORA-00054:资源正忙,但指定以NOWAIT方式获取资源,或者超时失效的问题
打开sql plus select session_id from v$locked_object;查询出oracle锁定的会话ID SELECT sid, serial#, username, os ...
- hdu 2034 - 集合操作
题意:集合A,B,计算集合差A-B(求只在集合A内的数) 解法: 选用STL内的集合set 1.建立set 1: #include<set> 2: 3: set<int> ...
- Python基本数据类型之tuple
一.创建元组: ages = (11, 22, 33, 44, 55) ages = tuple((11, 22, 33, 44, 55)) 元组和列表几乎一样 元组的元素不可修改,但是元组元素的元素 ...
- Java 序列化Serializable接口
1 什么是序列化和反序列化 Serialization(序列化)是一种将对象以一连串的字节描述的过程:反序列化deserialization是一种将这些字节重建成一个对象的过程. 2 什么情况下需要 ...
- JQuery 技巧积累与总结
1.获得select 元素选中的值 $('#WishlistSelect option:selected').val(); 2.设置按钮的disabled属性的实现代码 $('#button').at ...
- HDU 1116 Play on Words(有向欧拉判断)
题目链接 题意:给出一些单词,问全部单词能否首尾相连 直接 将每一个单词第一个和最后一个字母建立一条有向边,保证除了首尾两个出入度不相等,其他的要保证相等.还有一个条件就是 首尾两个出入度差为1 同时 ...