摘要:本文主要向大家介绍了Java语言面向对象基础和String介绍,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。
本文主要向大家介绍了Java语言面向对象基础和String介绍,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。
Java代码处理过程
.java-->编译--->.class---->解析---->.运行程序(虚拟机处理)
JRE:Java Runtime Environment
Java编程规范:每一个操作后都添加一个空格
方法的重载:方法名相同,但是参数个数或者参数类型不同,两者都不同也可以
面向对象:
封装性:1,把对象的属性和行为包装成一个整体
2,把不希望外界访问的信息隐藏
继承性:首先设计一个具有描述一般特征事物的类,再此基础上去定义具有特殊属性的事物的类
多态性:1,方法的重载
2,子对象和父对象的互相转换
static在方法上声明的情况:不是由对象调用的方法添加static,反则反之
引用类型与堆栈内存: String 类 数组 等
栈:存储堆内存的地址数据
堆:存储具体对象的属性值
为什么一般的对象可以用"=="直接比较而String对象却一般不行?
一般对象如数组,CLASS对象比较用"==",都是直接在比较栈内存数据是否相同,而一般对象都是直接拷贝,所以多个栈内存指向同一个堆内存。String对象一般是新建堆栈存储,如 String str = new String("world") ;故栈存储不同,即使是相同的值,也不相同。String为了解决这个问题定义了如下方法:
public boolean equals(String str); 该方法用来比较String字符串,注意:该方法有NULL检测
匿名对象:没有栈对象指向堆内存的对象
字符串常量的特殊性:
举例 : "hello".equals("hello"); 可以发现equals是一个方法,只有对象可以调用方法,这里说明"hello"是一个对象,但是并没有定义String对象,故不存在栈存储,所以只有堆内存。说明字符串常量是一个匿名对象
String类两种构造方法的区别(重)
直接赋值方式:String st r= "hello" ; 可知"hello"可以看作一个匿名对象,会有自己的堆内存,这里str对象的栈内存就指向这块内存。由此:该方法值开辟一块堆空间,并且存入内存池。
构造方法:String str = new String("hello") ; "hello"匿名对象有一个堆内存,但是new标识符一定会开辟一块堆内存(该内存不会加入内存池,但可以用intern方法手动加入内存池),而且str对象的栈内存指向new开辟的堆内存,那么这里就有两块堆内存,且"hello"的堆内存会标志为垃圾。
举例1:
String str1 = new String ("hello") ;
String str2 = "hello" ;
判断 str1 == str2 结果为 false
举例2:
String str1 = new String ("hello").intern() ;
String str2 = "hello";
判断 str1 == str2 结果为 true
简单JAVA类(原则上JAVA类都要实现以下几点)
1,类名
2,所有属性都为private并实现对应的gettter和setter方法
3,在类中没有任何输出
4,保留一个无参构造方法
5,提供一个获取类中所有属性的方法返回String
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号