Java基础复习

方法的重载:访问修饰符,返回值类型,方法名一致,但是方法中的参数列表不一致
方法的重写:访问修饰符,返回值类型,方法名和参数列表都一致,但是方法中的内容不一致

类和对象:类是一个模子,是对一类事物的抽象,一个类包含这一类事物具有的相同属性和行为;而对象是对类的实例化,他具有这一类事物的共有属性和行为,而且他可能还有这一类事物共有的属性和行为所没有的属性和行为

static:
静态变量:类中共享一个静态成员变量,他属于类所拥有,可以直接使用类名访问,没有实例化就可以调用;;当系统第一次使用该类的时候,就会为其分配内存空间在方法区,当卸载时才进行资源回收
静态方法:可以调用同类的静态成员和静态方法,但是不能调用同类的非静态成员和方法
静态块:只在类加载时,执行一次,静态块只能给静态变量赋值,不能初始化普通的成员变量
静态内部类:不能直接访问外部类的非静态成员,

面向对象的三大特征:继承,多态,封装

继承:单继承模式;除private外,子类可以拥有父类的所有属性和方法;继承实现了代码的复用;;继承的初始化顺序:初始化父类再初始化子类;如果父类仅有一个有参构造方法时,子类必然有且仅有一个和父类相同参数列表的构造方法

final:
final变量:只能赋值一次,为常量
final属性:不会隐式初始化,类的初始化必须有值,或者在构造方法中赋值,且只能选其一
final方法:不允许重载和重写
final类:不允许被继承

接口:包括全局常量和公共抽象方法(私有化的抽象方法不能被继承,此方法就没有了意义),接口定义了一批类需要遵守的规范,接口不关心这批类的内部数据,也不关心这类方法的实现细节,接口只规定这批类必须提供这些方法

异常:异常的顶级父类为Throwable类,该类分为:Error(虚拟机错误,系统错误,内存溢出)和Exception(编码,环境,用户操作,输出输入问题)

面向对象:面向对象就是把现实中的事物归纳总结抽象成一类事物;面向对象是以对象为中心;先开发类,得到对象,通过对象之间的通信实现功能;先有数据结构,再有算法;耦合度低,易维护,易复用,易扩展,系统灵活,但类需要实例化,开销大,比较消耗资源

参数在程序语言中分为形式参数和实际参数
形式参数:只在被调用时才分配内存单元,在调用结束时,立刻释放所分配的内存单元,因此,形参只在函数内部有效,函数调用返回主调函数后不能再使用形式参数
实际参数:调用有参方法时,实际参数把值传给形式参数

引用传递:指调用函数时将实际参数的地址赋给到形式参数,那么在函数中对参数进行修改,将会影响实际参数
值传递:是指在调用函数时将实际参数的值复制一份传递到函数中,那么在函数中对参数所进行的修改将不影响实际参数

Java中都是值传递(共享传递),就算传递的是对象也是把对象的地址复制一份给形式参数,若形式参数在方法中创建一个新的对象,则形式参数指向一个新的地址,修改的是新对象的值,原对象不发生改变,若形式参数在方法中不创建一个新的对象,则修改的是原对象,原对象的值发生改变

String:
因为字符串是常量,所以他们的值在创建之后不能被更改,String对象创建不能被修改,是不可变的,所谓的修改其实是创建了一个新的对象,所指向的内存空间不同
如果需要一个可以改变的字符串,可以使用StringBuffer和StringBuilder
String每次new对象都会产生一个新的对象,即使使用‘==’比较俩对象,结果也为false,如果需要比较内容使用equals方法
构造方法:
String(byte[] bytes):把字节数组转换成字符串,若数组为数字,则通过ASCII转化成对应的字母
String(byte[] bytes,int index,int length):将字节数组从索引index处一共length个转换成字符串
String(char[] value):把字符数组转化成字符串
String(char[] value,int index,int count):把字符数组从索引index处开始,一共count个转化成字符串
方法:
int length():返回此字符串的长度
boolean isEmpty():如果length()为0,返回true,否则返回false
char charAt(int index):返回指定索引处的char值,索引范围为0-length()-1
void getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin):要复制的第一个字符从srcBegin开始,要复制的最后一个字符位于索引的srcEnd-1处(因此要复制的字符总数是srcEnd-srcBegin),要复制到dst子数组的字符从索引dstBegin处开始,并结束于dstBegin+(srcEnd-srcBegin)-1
byte[] getBytes(String charsetName):使用指定的字符集将String编码成byte序列,并将它存储到一个新的byte数组中
boolean contentEquals(StringBuffer sb):将指定的字符串与StringBuffer比较,当且仅当String的内容和StringBufer内容相同时,返回true
int compareTo(String anotherString):按字典顺序比较两个字符串,如果按字典顺序此String对象位于参数字符串之前,则比较结果为负整数,如果按字典顺序此String对象位于参数字符之后,则比较结果为正整数,如果两个字符串相等,则结果为0
int hashCode():返回此字符串的哈希码
int indexOf(int ch):返回指定字符在此字符串第一次出现处的索引
int indexOf(int ch,int fromIndex):从指定的索引开始搜索,返回在此字符串中第一次出现指定字符处的索引
int indexOf(String str):返回指定子字符串在此字符串中最右边出现处的索引
String subString(int beginIndex):返回一个新字符串,他是此字符串的一个子字符串,该子字符串从索引处开始,直到字符串末尾
String subString(int beginIndex,int endIndex):返回一个新字符串,他是此字符串的一个子字符串,该字符串从指定的beginIndex开始,直到索引endIndex-1处的字符,因此该字符串的长度为endIndex-beginIndex
String concat(String str):将指定字符串连接到此字符串的结尾
boolean contains(CharSequence s):当且仅当此字符串包含指定的char值序列时,返回true
String toLowerCase():将String中的所有字符都转换成小写
String toUpperCase():将String中的所有字符都转换成大写
char[] toCharArray():将此字符串转换成一个新的字符数组
String valueOf(Object object):将Object类型的object对象转换成String类型,等价于object.toString()
将String类型转化成int:Integer.parseInt(String s)

=和equals的区别
==比较的是变量栈内存中存放的对象的对内存地址,用来判断两个对象的地址是否相同,及两个索引是否指向相同对象
equals用来比较的是两个对象的内容是否相等,由于所有类都继承Object类,所以适用于所有对象

线程安全是指在多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完成后,其他线程才能开始使用,不会出现诗句不一致或数据污染
线程不安全指不提供数据访问保护,有可能出现多个线程先后更改数据后造成所得到的数据时脏数据
ArrayList是非线程安全,Vector是线程安全的;HashMap是非线程安全的,HashTable是线程安全的;Stringbuild是线程不安全的,StringBuffer是线程安全的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于计算机专业的学生而言,参加各类比赛能够带来多方面的益处,具体包括但不限于以下几点: 技能提升: 参与比赛促使学生深入学习和掌握计算机领域的专业知识与技能,如编程语言、算法设计、软件工程、网络安全等。 比赛通常涉及实际问题的解决,有助于将理论知识应用于实践中,增强问题解决能力。 实践经验: 大多数比赛都要求参赛者设计并实现解决方案,这提供了宝贵的动手操作机会,有助于积累项目经验。 实践经验对于计算机专业的学生尤为重要,因为雇主往往更青睐有实际项目背景的候选人。 团队合作: 许多比赛鼓励团队协作,这有助于培养学生的团队精神、沟通技巧和领导能力。 团队合作还能促进学生之间的知识共享和思维碰撞,有助于形成更全面的解决方案。 职业发展: 获奖经历可以显著增强简历的吸引力,为求职或继续深造提供有力支持。 某些比赛可能直接与企业合作,提供实习、工作机会或奖学金,为学生的职业生涯打开更多门路。 网络拓展: 比赛是结识同行业人才的好机会,可以帮助学生建立行业联系,这对于未来的职业发展非常重要。 奖金与荣誉: 许多比赛提供奖金或奖品,这不仅能给予学生经济上的奖励,还能增强其成就感和自信心。 荣誉证书或奖状可以证明学生的成就,对个人品牌建设有积极作用。 创新与研究: 参加比赛可以激发学生的创新思维,推动科研项目的开展,有时甚至能促成学术论文的发表。 个人成长: 在准备和参加比赛的过程中,学生将面临压力与挑战,这有助于培养良好的心理素质和抗压能力。 自我挑战和克服困难的经历对个人成长有着深远的影响。 综上所述,参加计算机领域的比赛对于学生来说是一个全面发展的平台,不仅可以提升专业技能,还能增强团队协作、沟通、解决问题的能力,并为未来的职业生涯奠定坚实的基础
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值