-----Object---所有类的根类
1.怎么得到的:通过对所有对象不断的向上抽取共性,具备所有对象的共性的东西
2.常用的方法
* equals(Object obj):比较两个对象的引用是否指向同一个对象,本质就是引用地址是否相同,相同就返回true;作用和"=="一致,其子类继承后,只判断地址没有意义,一般会对该方法进行重写,重写后比较的是对象的特有内容是否相同。也用到了多态,为了代码的扩展性。eg字符串equals比较的就是内容。
注意一个细节:重写后存在多态,若要访问子类特有数据,必须进行强制转型
* hashCode():根据哈希值-->哈希算法-->内存中的地址
如果子类没有对其进行重写,其实现是与系统相关的,当然也可以利用对象的特有数据重写该方法重新定义哈希值。
一般对象相同表示两个方面:对象的地址和对象的内容,一般对equals()重写的时候也会对hashCode()进行重写
*getClass():要创建一个对象,必须先有这个对象的所属类的class文件,不同的对象存在不同的所属字节码文件--将这些字节码文件进行抽取共性(名字,构造方法等),封装成Class类
一般将类文件加载进内存的时候,会自动的将其封装为Class类型的对象(只会加载一次),然后在根据其创建该类所属的对象。
getClass()实际上返回的是当前对象所属类的字节码文件对象

-----String------常用的对象的方法必须掌握
1.是一个特殊的对象,两种创建对象方式
2.字符串一旦初始化就不可以被改变--不可变对象
String str = "abc"; s = "bcd";表示创建两个对象,s先指向abc实体,再指向bcd实体
注意:直接赋值字符串(存储在字符串常量池,一旦以该方式创建字符串内容相同就指向同一个对象)
3.String str = "abc";与Sting str1 = new String("abc");区别
前者存储在字符串常量池,可以被共享,后者存储在堆中new一次产生一个新的对象(涉及两个对象本质上)
str.equals(str1);true--被字符串类重写Object类equals方法--依据是字符串内容
4.常见的操作方法
构造方法:
以空参数,字符串,字节数组,字符数组,StringBuffer引用为参数--转化为字符串
以及将数组中部分组成字符串 offset length 开始+长度
一般方法分类:
1.获取字符串的信息
长度length--看返回值类型 s.length()--int;
获取特定位置的字符charAt(int index)--char 并支持ASCII范围的int类型数字
根据字符/字符串获取位置indexOf(char c)--int 第一次位置(重点掌握)
索引字符以及字符串 lastIndexOf(char c)
获取子串substring()--String
2.字符串的转换
分割字符串--返回字符串数组(按照什么分隔字符串)split(String str)--涉及到正则表达式
(这个方法必须掌握)
字符串--转化为字符数组toCharArray()--char[] ch
字符串--转化为字节数组s.getBytes()
字符串中字符大小写转化toUpperCase()/toLowerCase()等
替代字符串中的字符/字符串 replace(char oldChar,char newChar);
去掉字符串里面空格 trim()输入用户信息
字符串连接 concat()与+区别:前者专业
3.判断
字符串判断 equals() equalsIgnoreCase()
判断字符串是否包含指定字符串 contains()
是否以指定字符串开始/结束 startsWith/endsWith--快速查找
4.比较(必须会)
比较字符串大小 compareTo()--int(按照从前到后比较)this.compareTo(String str)
5.字符串intern()方法--返回字符串对象的规范化表现形式
可以对字符串池进行操作;返回池中存在的对象

----StringBuffer(保证同步,线程安全)-----字符串缓冲区对象(重点)--看作一个容器
1.缓冲区就是一个容器--将数据进行临时存储
2.特点:长度可变;可以存储不同类型的数据;默认容量为16B
缓冲区本质还是数组,将数组封装,对外提供方法。
要使用缓冲区的数据必须将其转化为字符串才能够使用。
可以对字符串进行修改--
3.应该具备的功能
添加:append()--返回值为StringBuffer对象(将数据放进去容器,返回值就是该容器)-后边追加数据 insert()-可以实现在任意位置的插入
删除:容器相关的方法delete()--/remove()--
查找:类似与字符串的查找方法
修改:replace()替换 setCharAt()
增删改查--容器的基本功能
注意:假如超过缓冲区的长度的处理:数组长度固定
******关于可变数组长度的原理*******
创建新数组长度=2倍原数组长度,在把原数组中的元素赋值过去
缓冲区存在构造方法可以指定缓冲区的大小
关于容器大小的估计--可以估计-就指定为估计的数组长度
---StringBuffer怎么实现同步----
对于操作数据的方法进行同步处理--涉及到处理数据的方法设置为同步方法/使用同步代码块实现同步(这种方式比较常见)--但是假如不涉及多线程-则就是执行的非常慢

---StringBuilder(不保证同步)----与StringBuffer兼容的API
1.由于不同步,所以执行速度较快--用于单线程比较好
2.多线程使用--StringBuilder 单线程使用StringBuffer
3.jdk升级的原因:简化书写(通常具有局限性)-提高效率-增加安全性(书写的麻烦)
4.数据要多-存储起来-要是以整个字符串形式输出就使用StringBuilder/StringBuffer
5.数组通常就可以一个一个的操作元素

---基本数据类型包装类---
为了更好的操作基本数据类型值,把其包装成对象形参基本数据包装类
Integer Short Boolean Byte Long Character Float Double--final类
构造方法:value,String--转换为数字对象
里面定义了该类型表示范围的常量:MAX_VALUE MIN_VALUE
常见的方法
数字格式字符串--基本数值转换(最常用)parseInt(String s) -int(静态方法)
可能会抛出NumberFormatException运行时异常(方法声明异常是希望调用者处理)
Character-里面没有该方法(因为可以把它直接和数字操作)
intValue()--int将Integer对象转换为int(非静态)
valueOf(String s)-Integer
进制转换---十进制转化二进制、八进制、十六进制(其他进制转十进制)--静态方法
parseInt(String s, int radix)--int十进制
自动装箱和自动拆箱(JDK1.5以后开始)
自动装箱:将基本数据类型赋值给引用
自动拆箱:将包装类对象和基本数据类型做运算

---System类---方法是静态的
1.字段(静态成员变量-引用)
static PrintStream err--标准错误输出流
static InputStream in--标准输入流-标准输入设备键盘
static PrintStream out--标准输出流-标准输出设备显示器
2.常用方法
long currentTimeMillis() 表示从1970 1.1.00.00.00到现在的毫秒数
Properties getProperties()
获取当前系统的属性存储在Properties<Map 键值对>集合里面
该集合Properties键值对都是字符串类型-最好使用其自己的方法获取元素
stringPropertyNames()-Set<String>,再使用高级for遍历集合并得到所有元素

---RunTime类---无构造方法getRunTime()返回本类对象-单例模式
每个Java程序都会有一个RunTime实例,使得可以与运行环境连接
注意:主要的目的是了解单例设计模式在该类的使用

---Math类---提供数学方面的应用(静态方法)
三角函数,指数函数,绝对值,平方根
取整函数
ceil():返回大于参数的最小整数
floor():返回小于参数的最大整数
round():返回四舍五入的整数
随机数:random()-double[0.0,1.0)

--Date类---util包里面
1.构造方法 Date() Date(long date) 毫秒数
年份-1900,月份0-11,小时0-23,分钟0-59
2.常用方法
直接打印date对象-打印结果就是日期+时间
毫秒值--日期对象
* 通过Date的构造方法
* 通过调用setTime(time)
将日期对象--毫秒值
* 通过调用getTime()[也可以调用getDay等方法获得该日期的各个字段值]
对日期格式进行转换--日期对象与字符串之间的转换(DateFormat抽象类)
日期对象+日期格式器对象
Date-String format(data)
关于自定义日期格式如何操作:SimpleDateFormat(DateFormat的子类)
该类中有定义一定的格式,我们直接可以使用其定义的符号表示自定义格式
String-Date
Date parse(String source)--DateFormat里面的方法

---Calendar抽象类---
主要作用:定义的一些方法用来取代Date里面过时的方法

----访问权限-----
1.包的好处
对类文件进行分类
给类文件提供多层的命名空间
写在程序的第一行
类名变为:包名.类名
包也是一中扩展的形式
2.四种访问权限的访问范围
范围 public protected default private
同包同一类中 ok ok ok ok
同一包中不同类 ok ok ok
不同包中父子 ok ok
不同包中 ok

Java基础总结--常用类以及包的访问权限的更多相关文章

  1. 【Java基础】常用类

    常用类 字符串相关的类 String类:代表字符串,使用一对 "" 引起来表示. public final class String implements java.io.Seri ...

  2. java基础之常用类1

    java基础 以下内容为本人的学习笔记,如需要转载,请声明原文链接   java常用类: 1.内部类 2.Object类 3.Object类常用方法 4.包装类 5.String类 6.BigDeci ...

  3. Java基础之常用类

    1.Collections类: (1)此类完全由在 collection 上进行操作或返回 collection 的静态方法组成. (2)静态方法摘要: static <T> boolea ...

  4. [改善Java代码]使用package-info类为包服务

    建议50: 使用package-info类为包服务 Java中有一个特殊的类:package-info类,它是专门为本包服务的,为什么说它特殊呢?主要体现在3个方面: (1)它不能随便被创建 在一般的 ...

  5. Java基础-DButils工具类(QueryRunner)详解

    Java基础-DButils工具类(QueryRunner)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如果只使用JDBC进行开发,我们会发现冗余代码过多,为了简化JDBC ...

  6. java中的常用类(二)

    java中的常用类(二) Math类 Math类的声明:public final class Math extends Object Math类是与数学计算有关的类,里面的方法都是静态方法,直接使用类 ...

  7. Java基础之File类的使用

    Java基础之File类的使用 1.File类的构造方法和常用方法 2.对File中listFile(FileNameFilter name)学习 3.与File文件类相关的实现 File类的构造方法 ...

  8. JAVA(二)异常/包及访问权限/多线程/泛型

    成鹏致远 | lcw.cnblog.com |2014-01-28 异常 1.异常的基本概念 异常是导致程序中断运行的一种指令流 基本的异常处理格式:try...catch,try中捕获异常,出现异常 ...

  9. 包和访问权限修饰符,.单例设计模式,.Object类常用方法,.内部类

    1.包和访问权限修饰符 1.1 包 为什么要导包? 将字节码文件(.class)文件进行分类存放 --->包 其实就是文件夹 import java.util.Arrays; 包的划分规则 方案 ...

随机推荐

  1. smarty文件夹,第一个smarty实例总结

    主要是libs里面的smarty类,和init.inc.php配置文件   剩下的是php文件夹.模板文件夹,临时文件夹.缓存文件夹.配置文件夹.插件文件夹   调用main文件夹中的php文件,通过 ...

  2. Java+大数据开发——HDFS详解

    1. HDFS 介绍  • 什么是HDFS 首先,它是一个文件系统,用于存储文件,通过统一的命名空间--目录树来定位文件. 其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角 ...

  3. 接口测试入门(5)----新框架重构,使用轻量级的HTTP开发库 Unirest

    之前的第一套框架在使用过程中发现存在以下问题: 一.  框架1缺点: 1.登陆的账号每个人写的不一样,一旦用户在测试环境被修改,则导致用例失败 2.每次读取访问网址,需要在同一个java文件下切换测试 ...

  4. ajax跨域问题Access-Control-Allow-Origin

    Access control allow origin直译过来就是"访问控制允许同源",这是由于ajax跨域访问引起的.所谓跨域就是,在a.com域下,访问b.com域下的资源:出 ...

  5. Centos6.7安装chrome

    cd /etc/yum.repos.dwget http://people.centos.org/hughesjr/chromium/6/chromium-el6.repo yum install c ...

  6. oracle 数据库管理--管理表空间和数据文件

    一.概念表空间是数据库的逻辑组成部分.从物理上讲,数据库数据存放在数据文件中:从逻辑上讲,数据库数据则是存放在表空间中,表空间由一个或多个数据文件组成. 二.数据库的逻辑结构oracle中逻辑结构包括 ...

  7. 一、js的数据类型

    一.数据类型 ECMAScript中有5种简单数据类型:Undefined.Null.Boolean.Number和String.还有一种复杂数据类型--Object.ECMAScript不支持任何创 ...

  8. PHP中public、protected、private权限修饰符

    PHP中有三种访问修饰符 默认是public public(公共的.默认) protected(受保护的) private(私有的) 访问权限 public protected private 类内 ...

  9. Oracle第一波

    html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...

  10. submit text3的激活与使用

    SublimeText3常用快捷键和优秀插件 SublimeText是前端的一个神器,以其精简和可DIY而让广大fans疯狂.好吧不吹了直入正题 -_-!! 首先是安装,如果你有什么软件管家的话搜一下 ...