- 浏览: 62910 次
- 性别:
- 来自: 成都
文章分类
最新评论
java是跨平台语言,真正执行的不是2进制码,而是字节码.
JVM---java virtual machine java虚拟机.java虚拟机不是跨平台的,jvm是由C语言编写的.
因为linux,window,mac等等操作系统所用的jvm是不同的.
java有两类数据类型:原生数据类型和引用类型.
原生数据类型:int,byte(-128~127 8位),short(16位),long(32位),
float,double,char,boolean.
关于计算机的数据表示:
位bit ---只有0,1两个状态,是计算机中最小的表示单位.
字节byte --- 1 byte=8bit.
KB --- 1 KB =1024 Byte. 1024 = 2的10次方.
MB --- 1 MB = 1024 KB.
GB --- 1024 MB.
5%(-2)==1 -5%2==-1 -5%(-2)==-1 证明了余数的符号和被除数一样.
java三大基本特征:封装,继承,多态.
属性定义在类中叫成员变量,定义在方法中叫局部变量.
使用前,局部变量必须初始化;但是成员变量可以不初始化,因为成员变量可以自己有自己的默认值.
对于java的方法参数传递,无论是原生类型还是引用类型,统一都是传值.
在定义一个类的时候,如果没有构造方法,java编译器会自动添加一个默认的构造方法;
如果为类声明了构造方法,那么java编译器就不会再添加默认的构造方法了.
new关键字顺序完成的三件事件:
为对象开辟内存空间--->调用类的构造方法--->将生成的对象地址返回.
如果想在一个构造方法中调用另外一个构造方法,那么使用this()方式调用.
但是this()之前不能有任何可执行的代码.
因为如果在构造方法中的this()之前有代码,那么该程序不晓得先执行
哪个构造方法执行的数据才是正确的了.
当生成子类对象时,java默认先调用父类不带参数的构造方法.
但是可以改变这种机制,利用super()来去调用父类任何的构造方法.
因为super()和this()在子类的构造方法中都必须处于第一行,两个
特殊的方法有冲突,所以在子类同一个构造方法中不能同时有
super和this两个特殊的构造方法.
继承---子类可以继承父类的属性和方法,但是只有构造方法不能被继承.
子类的构造方法可以隐式地调用父类不带参数的构造方法.
当两个方法发生重写关系时,可以在子类方法中通过super.xxx()形式调用
父类的xxx()方法,并且super.xxx()不必放在第一行.
多态---子类就是父类,比如:人是男人的父类,所以可以认为男人是人.
Person man =new Man(); //Person是Man的父类.
多态---父类型的引用可以指向子类型的对象,或者接口类型的引用可以
指向实现该接口的类的实例.
抽象类:使用abstract关键字.抽象类无法实例化,不能new出来抽象类对象.
抽象方法:也用abstract关键字,有声明无实现,没有{}括号,用;直接结束.
抽象方法一定是定义在抽象类中的.
如果一个类包含抽象方法,那么这个类一定是抽象类.
但是如果一个类是抽象类,它也可以包含具体方法,也可包含抽象方法,
也可以什么方法都不包含.
如果父类是个抽象类,子类去继承这个父类,那么子类必须要实现父类中
所有的抽象方法.
接口中的所有方法都是抽象方法.
接口中的方法可以使用abstract关键字,也可以不使用.
其实接口是一个特殊的抽象类.
一个非抽象类实现某个接口,那么该类必须要实现该接口中声明的所有方法.如果该类是个抽象类,那么无需实现接口中的方法了.
static可以修饰属性,修饰方法,也可修饰类.
static在内存中分配的空间永远是静止的,所以无论生成出多少个对象,
这些对象都会使用唯一的这份静态的内存空间.
static可以通过不用new出对象来访问,直接通过类就可以访问.
子类可以继承父类的static静态方法,但是子类不能重写父类的静态方法.其实子类一直隐藏着父类的静态方法.
final---可以修饰属性,方法,类. final修饰的类,方法,属性不能被继承和重写和覆盖.
为什么成员变量可以有默认值,局部变量没有?
类成员变量因为你在new一个对象时,分配了内存空间后会给所有的成员变量一次初始化,没有赋值的会给成员变量对应类型的“0”值,然后才构造对象初始化。每一个对象都有一个成员变量的副本,一直存在于对象的堆空间直到这个对象空间被回收。
局部变量在用的时候是直接入栈的,如果没有赋值,这个变量就没有初始值,也就无法操作,所以局部变量要初始化。并且局部变量在方法结束后会出栈,就像它没有来过一样。
static代码块---静态代码块.主要是完成一些初始化的工作.
首先执行静态代码块(将类加载到java虚拟机上),然后执行构造方法(JVM生成对象).
加载的时候只会加载一次,所以静态代码块只会执行一次.
静态的只能访问静态的;非静态的可以访问一切.
不能再静态方法中使用this关键字.
接口中所声明的方法都是抽象方法.接口中的方法都是public的.
接口中的成员变量是public,final,static的.实际的开发中其实基本不在接口中定义属性.
protected---作用在类内部,相同的包下以及该类的子类(子类和父类不在同一个包下)访问.
不加任何修饰符---int i;作用在类内部以及相同的包下类使用.
equals ---对于object类来说,equals就相当于==.
但是对于继承了object类然后重写了equals方法的类来说,就不同于==.
比如String类重写了equals方法,就是判断对象的内容是否相同.
比如对于一个自定义的student类. Student s1 = new Student("123");Student s2 = new Student("123");
System.out.println(s1.equals(s2)); // 这里返回的是false.因为这里没有重写equals方法,所以equals就相当于==.
String类是一个特殊的类.String类有个特殊的东西---StringPool(字符串池).
比如:String str = "aaa";
首先java会到字符串池中区查找是否存在"aaa"这个对象,如果不存在,则在字符串池中区创建一个aaa对象,
然后将StringPool中这个aaa对象的地址返回来,赋给引用变量str.
如果在字符串池中存在这个对象,则不创建任何对象,直接将字符串池中这个对象的地址返回来.
String str = new String("aaa");
首先在字符串池中查找有没有aaa这个对象,如果有,则不在字符串池中去创建aaa对象,
而直接在堆heap中创建一个aaa字符串对象,然后将aaa这个对象的地址返回,赋给str引用.
如果在字符串池中没有这个对象,那么先在池中创建这个对象,再去堆heap中创建aaa对象,
然后将堆中地址返回来.
发表评论
-
Eclipse快捷键
2011-11-28 15:19 788Eclipse的编辑功能非常强大,掌握了Eclipse快捷键功 ... -
myDemo
2011-09-23 18:02 0我的demo 文件。 -
我的实现.
2011-09-23 01:26 0我的代码实现... -
mybatis的实现
2011-09-23 00:09 0mybatis -
喊数字出圈的算法
2012-06-08 17:34 1005public static int cycle(int to ... -
JAVA_线程2
2011-09-03 22:46 0线程---程序中单独顺序的流控制.线程本身不运行,只能用于程序 ... -
JAVA_线程
2011-09-03 14:57 397//子线程循环2次,主线程5,接着子又循环2次,主循环5,如此 ... -
Collections集合类的方法进行排序
2011-09-02 22:20 780test.java 写道 public static voi ... -
final关键字
2011-09-02 15:33 677使用final关键字修饰一个变量时,是引用不能变,还是引用的对 ... -
java动态代理
2011-08-29 19:50 0动态代理步骤: 1.创建一个实现接口InvocationHa ... -
String类的分析
2011-08-21 22:31 680String中intern的方法 首先查看官方A ... -
JVM中堆和栈的描述
2011-08-21 16:11 921JVM specification对JVM内存的描述: ... -
java复习_异常
2011-09-05 23:09 690**************异常*********** ... -
Eclipse
2011-09-05 19:48 6361.在window下eclipse中新建一个工程是gbk编码格 ... -
set,Iterator
2011-03-27 00:21 884set和list不一样,因为set是无序的,没有重复对象的集合 ... -
第一次认真写博客
2011-03-26 01:59 700第一次在javaeye认真写自己的博客,决定以后会继续写下去。 ...
相关推荐
### J2SE基础复习知识点详解 #### 一、Java环境搭建与配置 - **环境配置**: Java环境配置是学习Java编程的基础步骤。主要包括JDK(Java Development Kit)的安装与配置。 - **JRE与JDK的区别**: JRE(Java Runtime ...
JAVA基础精粹,适用于JAVA初学者的复习和巩固
总的来说,这份压缩包资源对于想要学习或复习Java J2SE基础知识,尤其是GUI编程的开发者来说非常有价值。通过阅读源码和注释,可以深入理解Java编程的各个方面,同时通过实践SWT和JFace,可以提升在桌面应用开发领域...
本复习源代码涵盖了多个关键知识点,旨在帮助开发者巩固和提升在J2SE中的技能。 1. **常用类**: Java提供了丰富的内置类,如`String`、`ArrayList`、`HashMap`等。`String`类处理文本字符串,具有不可变性;`...
本课程旨在深入讲解J2SE的基础知识,帮助学习者掌握Java编程的基础技能,为后续的高级学习和软件开发打下坚实的基础。 1. **Java程序设计基础** - **基本语法和程序设计方法**:学习Java程序的基本结构,包括变量...
本篇文章将深入探讨Java复习中关于J2SE的基础知识,特别是字符串处理相关的概念。 字符串在Java中扮演着至关重要的角色。Java提供了三种主要的字符串类:String、StringBuffer和StringBuilder。理解它们之间的区别...
而"需要mindmanage软件打开的j2se.mmap"很可能是使用思维导图软件MindManager创建的J2SE知识结构图,它将J2SE的主要组件、概念和关系以清晰的层次结构展现出来,这对于学习者来说是很好的复习和记忆工具。...
Java Standard Edition(简称J2SE)...对于有经验的开发者来说,这些资料也可能是复习和深入理解J2SE特性的宝贵资源。通过系统学习,你将能熟练运用Java解决各种实际问题,无论是桌面应用还是后台服务,都能得心应手。
J2SE是Java平台的基础,提供了用于开发和运行桌面应用程序、服务器端应用和服务的基本功能。 **J2SE详解** J2SE,即Java 2标准版,是Java编程语言的核心平台。它包含了开发和运行Java应用程序所需的一切,包括Java...
在学习J2SE时,理解并掌握Java的基础语法和API是至关重要的。同时,要注重实践,通过编写和调试代码来巩固所学。对于初学者,建议先从视频讲解开始,结合PPT进行笔记整理,然后逐步分析和运行源代码,遇到问题时回溯...
在“java基础复习.doc”文档中,可能涵盖了以下关键知识点: 1. **Java语法基础**:包括变量、数据类型(如基本类型与引用类型)、运算符、流程控制语句(如if-else、switch、for、while等)、方法定义与调用。 2....
J2SE(Java 2 Standard Edition)是Java平台的核心部分,为桌面应用和服务器端应用提供了基础。以下是我根据标题“自己整理的j2se思维导图”和描述中的知识点进行的详细解释: 1. **标识符**:在Java中,标识符是...
J2SE是Java的核心部分,提供了构建桌面应用、服务器端应用和服务的基础框架。 1. **Java简介**:Java是一种广泛使用的面向对象的编程语言,以其“一次编写,到处运行”的特性闻名。J2SE是Java的标准化版本,包含了...
J2SE+J2EE所有知识点汇总,简单而不失详细。是复习和预习的重要参考资料。
本篇复习资料主要涵盖了Java语言的基础概念、Web程序开发、GUI组件以及事件处理模型。 首先,Java语言有多个版本,包括JDK(Java Development Kit),J2SE(Java Standard Edition),J2ME(Java Micro Edition)和...
Java 2 Platform, Standard Edition(简称J2SE...对于那些已经有一定经验的开发者,复习这些基础知识也是一个很好的巩固和提升的过程。因此,无论你是新手还是有经验的开发者,这份“J2SE很好的课件 ppt”都值得一看。
这个资源集显然包含了学习 J2SE 的重点内容,特别是对于初学者或者希望深入理解 Java 基础的开发者来说非常有价值。下面我们将详细探讨其中涉及的一些关键知识点,并结合标签提及的 Hibernate、JDBC、Spring 和 ...
J2SE是Java的基础,提供了开发和运行桌面应用程序所需的环境。在这个压缩包中,我们可以期待学习到以下Java编程的关键方面: 1. **基础语法**:包括变量、数据类型、运算符、流程控制(如if语句、for循环、while...
为了全面掌握这些知识点,建议考生结合相关的学习资料和实践项目,系统地复习和巩固Java编程的基础和进阶知识。此外,参与在线论坛、阅读官方文档和实践代码编写也是提高Java编程技能的有效途径。
电子商务网站设计基础复习题涵盖了多个领域的知识,包括电子商务模式、加密解密技术、数据挖掘、系统开发过程、计算机硬件、网络协议以及数据库管理等。以下是对这些知识点的详细解释: 1. **电子商务模式**: - ...