javaSE-基础部分整理
JavaSE基础部分整理
1.java介绍
1.Java分为三个部分:
javaSE,javaEE,javaME;
java重要性之一:跨平台(操作系统)。
跨平台:一次编译,到处运行。
Java虚拟机是否跨平台?
Java虚拟机是不跨平台的,它只是一个中转站,让Java指令能够被操作系统识别。
JVM(Java虚拟机,只是用于Java系统);
2.java运行环境的搭建
Jre:java运行环境。Jre = java虚拟机 + 核心类库(辅助java运行的文件);
JDK:java开发工具集 jdk = jre + java开发工具
3.java中JDK目录介绍
Bin:java的开发工具
Db:jdk7附带有一个微型数据库derby
Include:存放调用系统接口的文件
Jre:java运行环境
Lib:核心类库
Src.zip:java的源代码
4.java数据类型分为两种:
1.基本数据类型:
2.引用数据类型:
5.java中的运算符
1.算术运算符:+ - * /
2.自增自减:++ ,--;
3.赋值运算符:=,+=,-=,*=,/=;
4.关系运算符:> ,< ,>= ,<= ,== ,!=;
5.逻辑运算符:&,|,!,&&,||
&(与):两者都是真的时候,结果才为真。即:真真为真。有假为假。
|(或):两者都为零时才为零。即有真为真。
^(异或):不同为真,相同为假。
~(取反):真变假,假变真。
6.移位操作符:
1.>> 右移—规律:移动多少位就乘以2的多少次方。
int a = 2;
int b = a>>3;
System.out.println(b);
b = 2*2^3;
2.<< 左移 –规律:移动多少位就除以2的多少次方。
int a = 2;
int b = a<<3;
System.out.println(b);
b = 2*2^3;
3.>>> 无符号右移 无规律
总结:移位运算符是所有运算符中效率最高的。
2.面向对象编程。
java也属于面向对象编程 :
面向对象的三大特征 : 封装,继承,多态。
1.面向对象的理解并举例?
面向对象的核心 : 找合适的对象做合适的事情。
面向对象编程的思想 : 尽可能的用计算机语言来描述现实生活中的事物。
面向对象 : 侧重与对象
2.类与对象之间的关系?
类是同一类事物的抽象,对象是这个类的具体实现。
3.如何对类进行分析,如果创建自定义类对象,并如何指挥对象做事情?
类的结构 :
class 类名 {
1.公用属性
2.构造方法。
3.构造代码块
4.公有方法 ,普通方法
}
面向对象的三大特征之一:继承;
继承用关键字 : extends
继承作用:
1.优化代码,减少代码的重复使用。
什么时候使用继承:
两个类之间必须要满足is a的关系 ,才能够拥有继承关系,不是任何情况下都允许继承
继承的使用注意事项:
1.子类不能够继承父类的私有的变量。
2.子类不能够继承父类的构造方法。
3.子类在调用自己的构造方法时,会默认调用父类的无参构造。
4.私有方法不能被继承。
5.子类不能够继承不在一个包中默认权限的成员变量。//讲包的时候说。
为什么会调用父类的构造方法?
子类在创建对象的时候初始化父类的变量。
new 类名(); 匿名对象
匿名对象 :
1.一般不会用匿名对象给属性赋值,因为无法获取到。
2.创建出来每一次都是一个新的对象。
匿名对象作用:
1书写简单,如果一个对象中的方法只需要调用一次,这个时候就可以使用匿名对象
2.可以作为实际参数在方法中调用。
设置属性 :必须要有一个对象
对象.属性名 = 值;
访问(获取)属性 :
对象.属性名
访问方法:
对象.方法名();
4.对象的内存分布图?
对象的引用变量是存栈区中的 ,对象是存在堆区中的,成员变量也是随着对象存在对去中的。
5.成员变量和局部变量的区别?
位置:
1.成员变量实在,类中方法外。
2.局部变量存在方法中
作用域:
1. 成员变量当前类中都可以使用
2.局部变量只能在方法中使用
初始化:
1.成员变量默认由初始值
2.局部变量要想使用必须初始化。
生命周期:
1.随着对象的创建而创建,随着对象的消失而消失
2.出来方法的调用就消失。
7.构造函数和一般函数的区别?
结构上:
1.构造函数是没有返回值,方法名就是类名。
2.构造函数是由jvm来调用的,自己是无法手动调用,只会被调用一次。
作用:
1.初始化的时候给属性赋值。
2.描述对象的某种行为。
8.构造函数什么时候用?
创建对象的时候由jvm调用
9.构造代码块的作用?
可以给对象设置统一初始化的值。
位置:
在成员变量的位置上。成员变量写在哪里,我就可以写在哪里。
构造代码块的代码是在构造函数中执行的,并且先于构造函数中的代码执行
java在编译的时候会自动将成员变量的声明放在最前面。
10.this关键字的特点和使用以及应用场景?
this :当前调用方法的对象。
this的作用:
1.如果成员变量和局部变量同名可以通过this来调用成员变量。
2.可以通过this实现构造方法中调用构造方法。
格式:
this(参)--->具体参数是什么,由你的构造方法决定。
注意:必须是方法中的第一个语句。
接口和类的关系:实现关系。
1.一个非抽象类,必须实现接口中的所有方法。
2.一个抽象类是可以不实现接口中的方法,如果一个非抽象的类继承抽象类,那么这个类就需要实现接口中的所有方法。
主要讲了多态:
定义:一个对象的多种表现形态。
具体的说法 : 1、父类的引用类型变量指向子类对象。
2、接口的引用类型变量指向类的实现。
多态使用注意点:
1.必须满足继承关系。必需方法重写
2.多态情况下:子父类存在同名的成员,默认是访问父类的成员,除了非静态的方法是访问的子类。
3.多态情况下:不能够访问子类所特有的成员。
Java的编译原理决定 :
Java在编译的时候,会检查引用类型变量所属的类中是否有指定的成员,没有就报错。
多态的应用:
1.作为形参 ,可以使接收的类型更多。
2.作为返回类型 , 可以返回更多的数据类型。
//我想在用子类的类型接收回来 :
这个时候就需要用到强制类型转换。
eg: Animal a = new Dog(); //多态
Dog d = (Dog)a; // 强制类型转换
多态的另外一种实现:
实现关系下的多态 :
接口 变量名 = new 实现类();
内部类 : 一个类中包含另外一个类 我们把包含在里面的内叫内部类。
内部类的文件名: 外部类名$内部类名
1.成员内部类 :
有两种创建方式 :
1.在外部类中定义一个方法来创建内部类对象,再通过对象进行访问。
2.直接在其他类中创建内部类对象
格式 :
外部类名.内部类名 变量名 = new 外部类().new 内部类();
内部类的使用注意点 :
1、外部类和内部类存在同名的成员变量时,默认是访问内部类,可以通过"外部类名.this.变量名"来访问到外部类的成员变量。
2、如果是私有的内部类只用方式一来访问。
3、如果内部中出现了用static修饰的成员,那么这个类也必须用static修饰。
2.局部内部类: 定义在方法中的类
1.只能通过第一种方式来访问。
使用注意点 :
1.如果局部内部类访问了局部变量 ,那么这个局部变量必须用final修饰。
匿名的内部类 : 没有类名的内部类。
好处 : 简化书写
使用前提 : 必须存在继承或者实现关系才能使用。
他的实现实际以多态的形式表现的所以需要满足上面的条件。
匿名内部类一般用实际参数。
Java中的权限修饰符
* public protected default private
* 同一类 true true true true
* 同一包 true true true false
* 子父类(不在同一个包中) true true false false
* 不同包 true false false false
*
* 1.修饰类中的成员(方法和变量)
* 2.修饰类:public default
* public 任何地方都可以访问 ,在其他包中使用需要导包
* default 只有在同一个包中
*
* 权限修饰符:设置成员或者类的使用范围。
javaSE-基础部分整理的更多相关文章
- JavaSE 基础习题整理 - 面向对象篇
大家好,今天空闲时间整理了一份JavaSE面向对象的常用习题,喜欢的朋友可以关注我.习题来自互联网,不喜勿喷 1.定义长方形类,含: 属性:宽.高(整型): 方法:求周长.面积: 构造方法3个:(1) ...
- javaSE基础07
javaSE基础07 一.static静态修饰符 用了static修饰的变量就会变成共享的属性,只会初始化一次,在内存中只存在一个,并且每个对象都可以访问,存放在方法区(数据共享区) 1.1 stat ...
- javaSE基础06
javaSE基础06 一.匿名对象 没有名字的对象,叫做匿名对象. 1.2匿名对象的使用注意点: 1.我们一般不会用匿名对象给属性赋值的,无法获取属性值(现阶段只能设置和拿到一个属性值.只能调用一次方 ...
- javaSE基础05
javaSE基础05:面向对象 一.数组 数组的内存管理 : 一块连续的空间来存储元素. Int [ ] arr = new int[ ]; 创建一个int类型的数组,arr只是一个变量,只是数组的一 ...
- javaSE基础04
javaSE基础04 一.三木运算符 <表达式1> ? <表达式2> : <表达式3> "?"运算符的含义是: 先求表达式1的值, 如果为真, ...
- javaSE基础03
javaSE基础03 生活中常见的进制:十进制(0-9).星期(七进制(0-6)).时间(十二进制(0-11)).二十四进制(0-23) 进制之间的转换: 十进制转为二进制: 将十进制除以2,直到商为 ...
- javaSE基础02
javaSE基础02 一.javac命令和java命令做什么事情? javac:负责编译,当执行javac时,会启动java的编译程序,对指定扩展名的.java文件进行编译,生成了jvm可以识别的字节 ...
- JavaSE基础01
JavaSE基础篇01 ------从今天开始,我就学习正式java了,O(∩_∩)O哈哈~,请大家多指教哦 一.Windows常见的dos命令 操作dos命令: win7 --->开始 --- ...
- javase基础复习攻略《十》
按照计划本篇为大家总结JAVA的网络编程,什么叫网络编程呢?网络编程!=网站编程,对于这一点大家一定要注意,很多小朋友都曾经这么认为.既然谈到网络编程,咱们先了解一下网络的基础知识,什么是计算机网络? ...
- javase基础复习攻略《二》
今天就开始的真正走进JAVASE的世界,本篇介绍的是:JAVASE基础语法,大家如果有C语言的基础,对于本节内容一定感觉非常轻松,编程语言之间的都是相通的,只不过C语言属于面向过程编程,而JAVA语言 ...
随机推荐
- 在MAC中安装Compass的方法 (转)
在MAC中通过gem命令安装compass时会出异常,原因是compass版本更新了,一些运行时所用到的依赖软件的版本没能得到更新,故而出现错误.例如,用以下命令安装compass: $ gem in ...
- Loadrunner负载机agent
记录下来备用,若要一台服务器充当负载机,windows下必须启动magentproc.exe
- [线段树]HDOJ5091 Beam Cannon
题意:给n, w, h (1 <= N <= 10000,1 <= W <= 40000,1 <= H <= 40000) $w\times h$是可以射到的范围 ...
- php 中奖概率算法
我们先完成后台PHP的流程,PHP的主要工作是负责配置奖项及对应的中奖概率,当前端页面点击翻动某个方块时会想后台PHP发送ajax请求,那么后台PHP根据配置的概率,通过概率算法给出中奖结果,同时将未 ...
- 通过Hibernate将数据库在myeclipse中逆向生成
1.首先准备好数据库. 2.在MyEclipse的右上角切换透视图,切换到MyEclipse Database Explorer 3.在最左边点击右键,选择New(也就是新建一个数据库连接),然后编写 ...
- html5 高级动画精灵
<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...
- WCF - Self Hosting
WCF - Self Hosting Here, the WCF service is hosted in a console application. Given below is the proc ...
- Form.block Trigger DML常规写法
Block的数据源是View的,如果想操作数据,需要注意在以下几个Trigger里面写代码: 一般建议创建View的时候包含rowid字段. on-lock: select inventory_ite ...
- PHP libxml RSHUTDOWN安全限制绕过漏洞(CVE-2012-1171)
漏洞版本: PHP PHP 5.5.x 漏洞描述: BUGTRAQ ID: 65673 CVE(CAN) ID: CVE-2012-1171 PHP是一种HTML内嵌式的语言. PHP 5.x版本内的 ...
- SCOI2005互不侵犯King
1087: [SCOI2005]互不侵犯King Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1499 Solved: 872[Submit][S ...