java 有序数组 频率_java基础最全面总结_1

一. 面向对象: {

1.面向对象的思想 :基于面向过程的编程思想

特点:符合我们思想的

将复杂的简单化

将我们从执行者变为指挥者

开发:不断创建对象使用对象指挥对象做事情

设计:就是管理和维护对象之间的关系

特征:封装,继承,多态

2.类与对象及其使用 :

类:java中基本单位

类:相关属性和行为的集合

对象:该类事物的具体的表现形式,new出来的,类的具体存在的个体

3.成员变量和局部变量的区别 ?

在类中的位置不同

成员变量 类中方法外

局部变量 方法中或者是方法声明中

在内存中的位置不同

成员变量 堆内存

局部变量 栈内存

生命周期不同

成员变量 随着对象的创建而创建,随着对象的消失而消失

局部变量 随着方法的调用而创建,随着方法的调用完毕而销毁

初始化值不同

成员变量 有初始化值

局部变量 没有初始化值,必须赋值之后才可以使用

4.匿名对象

就是没有名字的对象 使用场景: 匿名对象作为实际参数传递;调用方法,仅仅只是调用一次的时候

5.this关键字 当前对象的引用 {局部变量隐藏成员变量的时候使用this,就是说局部变量和成员变量名一样的时候,使用this,代表的成员位置的那个变量}

6.构造方法 :用于对对象的数据进行初始化 {方法名和类名相同;没有返回值,连void都没有;} 对于构造方法,其实是可以后面写上return,仅仅表示方法结束,其实其他的任意void方法都可以后面写上return

7.static关键字: 存在方法区的静态区

随着类的加载而加载

优先于对象存在

被类的所有对象共享

可以通过类名和对象名调用

在静态方法中,没有this关键字,static是随着类的加载而加载的,this是随着对象的创建而存在,静态比对象先存在

8.静态变量和成员变量的区别:

所属不同

内存中的位置不同

内存出现的时间不同

调用不同

9.代码块

局部代码块:在方法中出现,限定变量的生命周期,及早释放,提高内存利用率

构造代码块:在类中方法外,多个构造方法中的相同的代码放到一起,每次调用构造都执行,并且在构造方法前执行

静态代码块:在类中方法外,加static修饰,用于给类初始化,在类加载的时候执行一次,并且执行一次

静态代码块>>构造代码块>>构造方法

10.继承中构造方法的关系:

子类的所有的构造方法都会默认去访问父类中的空参构造,因为子类继承父类中的数据,可能还会使用父类中的数据,所以子类初始化之前,一定要完成父类的数据初始化 ,每一个构造方法的第一条语句默认都是super()

11.抽象类中可以不定义抽象方法吗?

可以,抽象类的作用仅仅是为了不让该类创建对象

12.类与类,类与接口,接口与接口的关系?

类与类:继承关系,只能单继承,可以多重继承

类与接口:实现关系

接口与接口:继承关系,可以多继承

13.final的特点

可以修饰类,方法,变量

修饰类,类不能被继承

修饰方法,方法不能被复写

修饰变量,变量就成了常量,只能被赋值一次

14.final修饰变量的初始化时机:

在对象构造完毕之前初始化即可

常见的给值:1.定义的时候直接给值 2.构造方法中

}

二 .常见类 {

1.object类

hashcode方法: 返回该对象的哈希码值 ,将对象的内部地址值转换为一个整数.根据哈希算法计算出来的一个值,这个值和地址值有关,但是不是实际地址值.

getClass方法: 返回次object的运行时类/就是字节码文件的对象

equals方法: 这个此方法被重写的时候,默认情况下比较的是地址值,当此方法重写的时候,通常要重写hashcode方法.字符串的equals的方法比较的是内容是否相同 ./我们重写equals方法,就是比较成员变量的值

基于的原理就是字符串的equals的比较的是内容

toString方法: 返回该对象的字符串表示形式.方法值等价于getClass().getname()+@+integer.toHexString(hashCode()), 直接输出一个对象名,其实就是调用对象的toString方法

2.Sting类 { (获取功能)

1,遍历 charAt(索引)

2,length 获取长度

3.统计大小写以及数字的次数.遍历判断范围 'a' 'z' '0''9' 'A' 'Z'

String类(转换功能)

1.getBytes

2.toCharArray

3.valueOf 方法重载 任意类型的数据转为字符串

4.大小写转换 toLowerCase

5.concat把字符串拼接

其他的功能

1.替换 replace

2.去除空格

3.按照字典顺序比较大小

字符串反转案例:

}

3.StringBuffer类

4.StringBuilder类

}

三 . 集合 {

1.集合 collection map

2.collection集合里面包含list和set集合 list集合是重复,有序的集合 set集合是不重复,无序的集合 list集合下有分支 arrayList linkedList set下面分 HashSet TreeSet

3.map集合是以键值对存在的 hashMap HashTable Treemap

4.collection是最基本的集合接口,所有的子类都必须实现两个构造方法 无参{创建新的空collection} 带参{传入一个集合,相当于复制}

5.collection的方法:

添加 add方法 addAll

删除 clear 清空 remove 删除 removeAll(传入集合 )

判断 contains 包含 isEmpty() containsAll( 传入集合) 包含

size() 集合中元素的个数

集合转换为数组 toArray();

list集合 {

arrayList 数组结构 查询快 增删慢 不同步 { 队列 先进先出}

linkedList 链表结构 查询慢 增删快 不同步 {堆栈 先进后出}

方法 : get(index) set(index,dement)

subList(index,index) 截取

linkedList的特有方法: 围绕着头和尾展开的方法

addFrist addLast getFrist getLast

removeFrist removeLast 获取头部或者是尾部的元素 并且删除

}

set集合{

HashSet 哈希表结构 查询快,不同步

保证元素的唯一性,依赖于 hashCode()方法 和 equals()方法

HashSet还有一个子类是linkedHashSet {

存取的顺序一致 底层结构是 哈希表+链表

}

TreeSet 底层数据结构是 红黑树(一种自平衡的二叉树)

}

Map集合{

注意的就是间是唯一的,值可以重复 ,每个键只有一个值.键值对的形式而存在

遍历 1.根据键找值 获取键集keyset() 遍历键集,找值 get(key)

2.根据键值对找键值 获取键值对对象的集合 entrySet() 遍历集合,获取键值对对象的集合,然后根据键值对对象找到键值

map集合的删除方法 可以根据键来删除 remove(key)

}

collections 工具类 针对集合操作的工具类 sort reverse max min

}

四 . 异常

错误和异常

五 . IO流 {

1.File 文件和目录路径名的抽象表现形式

方法 :

创建文件 creatNewFile()

创建文件夹 mkdir() 创建多级文件夹 mkdirs()

删除 delete()

重命名 reNameTo()

判断功能{

isDirectory() 是否是文件夹

isFile() 是否是文件

exists() 是否存在

canRead() 是否可读

canWrite() 是否可写

isHidden() 是否隐藏

}

获取功能{

getAbsolutepath() 获取绝对路径

getpath() 获取相对路径

getLength() 获取文件长度

getName() 获取文件名

lastModified() 获取最后修改时间

List() 获取目录中的文件名

ListFiles() 获取目录中的文件

}

字节流 inputStream outPutStream

字符流 reader writer

方法 就是read write read方法 当读取到文件末尾的时候返回-1 write方法写入数据的时候,可以按照字节数组写入 fos.write( byte[]) fos.write( byte[],int off ,int len)

字节缓冲流 bufferedoutputStream bufferedInputStream

输出流的刷新功能 flush()

对象序列化流 objectoutputstream 向流中写入数据

对象反序列化流 objectinputstream 从流中读取数据

对象序列化一定要是实现serializable接口

如果对象中有的成员变量不需要被序列化,使用关键字transient声明

}

六 . 网络编程

OSI参考模型 {

应用层

表示层

会话层

传输层

网络层

数据链路层

物理层

}

TCP/IP参考模型 {

应用层

传输层

网际层

主机至网络层

}

网络编程的三要素{

ip

端口(0-65535)

协议 (tcp 建立数据通道,无限制,效率低但是可靠 udp 数据打包有限制,不连接,不可靠)

}

socket机制 : 通信两端都有socket对象; 所有通信都是通过socket之间的io进行操作的 socket用于将应用程序和端口连接起来

七 . 多线程

多线程的创建方式 {

方式1.继承Thread,调用start方法

方式2.实现runnable接口 ,实现run方法,start开启

}

同步锁:多个线程想保证线程安全,使用的是同一个锁对象

关键字: synchronize

八 . 数据库 {

数据库的启动和关闭 {

net start mysql;

net stop mysql;

}

登录{

mysql -user=用户名 --host=ip地址 --password=密码

}

sql语句{

结构化查询语句,关系数据库语言的国际标准

sql分类{

数据定义语言{(DDL) create alter drop }

数据操作语言{(DML) insert delete update}

数据控制语言{(DCL) grant}}

数据查询语言{(DQL) select from where }

}

数据库操作 {

创建数据库 create database 数据库名; (character set 编码)

查看数据库 show databases;

show create database 数据库名;

删除数据库 drop database 数据库名 ;

切换数据库 use数据库名;

查看正在使用的数据库 select database;

}

表操作 {

创建表 create table 表名(字段名 类型 约束,字段名 类型 约束)

查看表 查看所有的表 show tables;

查看表结构 desc 表名;

删除表 drop table 表名 ;

修改表 alter {

添加列

修改列的类型长度以及约束

修改列名

删除列

修改表名

这几个方法差不多,alter table 表名 +后面的不一样 add change drop

}

}

插入记录 {

insert into 表名 (列名1 ,列名2...)values (值1,值2...)

}

更新记录{

update 表名 set 字段名=值 where 条件;

}

删除记录{

delete from 表名 where 条件; /delete from 表名 having 后面可以是聚合函数

}

分组查询 Group by

limit 从第几条开始查询,查询几条数据 从第几条开始查询但是不包含当前的第几条

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值