Java基础---个人笔记整理

我在考完研后,北上找实习,经过几家公司面试失败后,总结面试后被问到的Java基础,确实觉得自己的基础太差了。经过半年多的时间复习考研,所以Java方面技术性的东西多次被问懵了,特写点东西巩固一下以前的知识,访客如果发现有错误,请提醒纠正,谢过。

Java语言类型:

Java语言既是解释型,又是编译型的,代码经编译后转换为Java字节码,而虚拟机将对字节码进行解释和运行,编译只进行一次,解释则在每次执行时都会进行。
JVM:Java虚拟机,作用:将字节码解释为机器码。

Java版本:
JavaSE:Java标准版,主要用于桌面应用程序开发。
JavaEE:Java的企业版,主要用于开发企业级分布式的网络程序,如电商网站和ERP(企业资源规划)等,核心为EJB(企业Java组件模型)。
JavaME:主要应用于嵌入式系统开发。


JavaAPI:Java应用程序编程接口。JavaAPI文档是Java程序开发不可缺少的编程词典。
Java特性:面向对象,分布性,可移植性,解释型,安全性,健壮性,多线程(同一时间并行执行多项任务,加之相应的同步机制可以保证不同线程能够正确共享数据,可以带来更好的交互能力和实时行为),高性能,动态等。
Java区分大小写
Java有8种数据类型:数值型(整数(byte,short,int,long),浮点类型(float,double)),字符型,布尔型。
标识符(名字)以字母,下划线,美元符,数字组成,且不能以数字开头,不能是Java关键字。
常量:运行过程中不会改变,也称“final变量”,只能被赋值一次,所有对象共享。语法:final 类型 变量名=值。(若final变量属于成员变量时,必须在定义时赋初值,否则会编译错误)。
成员变量:在类中定义,在整个类中有效,分为静态变量(static修饰,也称类变量,有效范围可跨类,可以用类名.静态变量在其他类中使用)和实例变量。
局部变量:在方法中定义,当前代码块中有效,其生命周期取决于方法,当方法被调用时虚拟机为其分配内存空间,结束后释放空间,被销毁。
局部变量与成员变量名字相同时,成员变量被隐藏,即暂时失效。


数据类型转换:任意类型都可以转换为string类型。
隐式类型转换(从低级类型向高级类型转换,系统自动执行,byte<short<int<long<float<double)。
显式类型转换:高精度向低精度转换,语法:类型=(欲转类型)变量。

循环中的“”“跳出循环”
break用法:跳出当前循环体。
continue:跳过本次循环结束前的语句,重新开始执行循环。


与字符串相关方法

获取长度str.length(),

查找str.indexOf(substr)或者lastindexOf(String str),

获取指定索引字符str.charAt(int index),

获取子串str.substring(int 开始位置)或substring(int 开始位置,int 结束位置),

除空格str.trim(),

替换str.replace(原字符串,新字符串),

判断开始str.startWith()与结尾str.endWith(),判断相等str.equals(某字符串),

按字典顺序比较字符串str.compareTo(某字符串) ,返回值:正数(str在某字符串之后),负整数(str在某字符串之前),0(两者相等)。

字符串分割str.split(分割标志)或str.split(string 分割符,int 分割次数),格式化字符串str.format()等。


正则表达式:含有一些特殊意义字符的字符串,用于判断语句,用于检验某一字符串是否满足某一格式。
字符串生成器StringBuilder,需要实例化,相关方法append(追加的内容),insert(位置,插入的字符串),delete(开始位置,结束位置)
this关键字的使用方法,类似于本类对象的引用,被隐式地用于引用对象的成员变量和成员方法,此外,还可以作为方法的返回值,return this;返回的是一个对象,还可以调用类中的构造方法。
类的构造方法,与类同名(对象的创建是通过构造方法完成),无返回值,若类中无明确定义构造方法,编译器会自动创建一个不带参数的默认构造方法。


static:修饰变量,常量,方法,被称为静态成员,该成员属于类所有,可以在本类或其他类中使用类名.调用静态成员。(1.静态方法中不能使用static关键字,2.在静态方法中不可以直接调用非静态方法,3.Java中规定不能将方法体中的局部变量声名为static的)。
 

主方法(静态的,无返回值,型参为数组)
 

对象的比较——==和equals()方法比较:equals方法是string类中的方法,比较的是两者的内容,==比较的是两个对象引用的地址。(不同对象,地址不同),但equals方法默认是“==”。
对象销毁,被Java虚拟机视为垃圾的有:1.对象引用超过其作用范围,2.将对象赋值为null。
 

封装类(包装类)【Integer,Boolean,Short,Byte,Character,Double,Float】——Integer与int区别,是int的封装类,需要实例化才能使用,初值为null(int初值为0),两种构造方法(1.Integer(int 数字),2.Integer(string 字符串))

Math.radom()默认生成大于等于0.0且小于1.0的double随机数。
随机数生成器,Java提供了Random类,实例化该类。
Java提供了BigInteger类,支持任意精度的整数。


Object类是所有类的父类。


上转型:把子类对象赋值给父类类型的变量。(具体——抽象类之间转换,是安全的)
下转型:(抽象——具体类之间转换)把父类赋值给子类(会发生编译错误)并强制转换为子类(解决办法)。
instanceof是Java关键字(Java关键字都要小写)用于判断对象类型,返回布尔值(A instanceof B true:A是B的实例对象,false:A不是B的实例对象)


方法重载:在同一个类中允许同时存在一个以上的同名方法,只要参数类型和参数个数不同即可。
Java中抽象(abstract)类不可以实例化对象。抽象方法没有方法体(方法本身无意义,除非被重写),抽象类被继承后要实现其中的所有抽象方法。


接口(interface):抽象类的延伸,接口中的所有方法都没有方法体。(用implements实现接口),接口中的方法必须被定义为public或者abstract,且默认为public的。(接口中的任意字段都是static和final的)
final变量:常量,一旦被设定,就不可以再改变。(必须在声明时赋值,可以修饰基本数据类型和对象引用,用static和final修饰的变量只占据一段不能改变的存储空间)。
final方法:不能被重写,可以防止子类修改该类的定义与实现方式,其执行效率高于没有用final定义的方法,final方法不能被覆盖。
final类:不能被继承。

集合类(容器)~集合(List集合,Set集合,Map集合,其中List和Set集合继承了Conllection接口)与数组不同之处:集合长度可变,用来存放对象的引用,而数组定长,用于存放基本数据类型。


遍历集合:通过迭代器(Iterator)来实现。(和数组类似,索引均是从0开始)。
List集合(有ArrayList(实现可变数组,随机访问效率高,允许存储所有元素,包括null)和LinkedList实现类(用链表结构保存对象,插入和删除效率高)):元素允许重复,各元素顺序即为对象插入顺序。通过索引访问集合中的元素。两个方法(get(位置),获取指定位置的元素,set(位置,修改后的对象),修改指定位置的对象)。
Set集合(有HaSet(无序遍历,允许null存在)和TreeSet(自然顺序遍历)实现类):不允许重复。
Map集合(有HashMap(基于哈希表的Map接口的实现类,通过哈希码对其内部关系进行快速查找,允许null值和null键,必须保证唯一)和TreeMap实现类(该映射关系存在一定顺序,不允许null)):key必须不同,但value可以相同。
输入输出流:流是一组有序的数据序列。所有输入流类都是抽象类InputStream(字节输入流)或抽象类Reader(字符输入流)的子类,所有输出流都是OutputStream(字节输出流)或Writer(字符输出流)的子类。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值