Java基础1

本文深入解析了Java中字符串处理、集合框架(Map,List,Set)、序列化与反序列化、JVM内存管理、数据库连接(MySQL join)及关键概念如抽象类、接口、构造方法、super与this关键字的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1.getString和toString区别


toString()方法是指把对象转换成字符串。Java中任何的对象都可以调用toString方法
getString()是指取得String类型数据库用的,比如在数据库取数据

 2.map集合、list集合、set集合区别


map集合特点:(k-v)
1.能够存储唯一的列的数据(唯一,不重复)
2.能够存储可以重复的数据(可重复)
3.值的顺序取决于键的顺序
4.键和值都是可以存储null元素的 
map集合是无序的,key值不可重复,value值可重复
map集合是独立的接口,重要的实现类有Hashmap、Treemap、HashTable
TreeMap是有序的,Hashmap和Hashtable是无序的(Hashmap的方法不是同步的,HashTable方法是同步的)
Hashmap.put 是取数据

List集合有序可重复的集合,集合中的每个元素都有对应的索引,以便查询和修改(查询快,删除和插入慢),它是一个接口,它继承于collection,拿数据是 List.get。放数据是 list.add

list接口常用的方法:


重要的实现类:
Arraylist特点:
1.有序,有索引,可重复
2.可以存储null值,线程不安全

3.arraylist底层是基于动态数组,向数组尾部添加元素效率高。

Linkedlist是采用链表的方式来实现List接口,数据添加、删除效率高,只需改变指针指向即可

 

set集合:继承于Collection接口。set是一个接口,set的元素是不可以重复的,所以至多有一个null值。

set有一个重要的方法equals:判断两个元素是否相等,返回值为boolean

set集合常用的实现类由HashSet和TreeSet

3.序列化和反序列化

 

序列化:把Java对象转换成字节序列过程,序列化最主要的用处就是在传递和保存对象时候,保证对象的完整性和可传递性。序列化就是把队象转换有序字节流,以便在网络上传输或者保存在本地磁盘中。序列化最核心的作用就是对象状态的保存和重建。

java序列化好处:1.实现了数据的持久化,通过序列化可以将对象永久保存到硬盘上(通常存放在文件里)。2.利用序列化实现远程通信,即在网络上传输对象字节序列。

反序列化:指将字节序列恢复为Java对象过程,客户端从文件中或者网络上获得序列化的对象字节流后。根据字节流中所保存的对象状态及描述信息,通过反序列化重建对象。

本质的讲:序列化就是把实体对象状态按照一定的格式写入到有序字节流,反序列化就是从有序字节流重建对象,恢复对象状态

为什么要进行序列化和反序列化?

当两个进程进行远程通信时,可以发送各种类型的数据,包括文本、音频、图片等,而这些数据会以二进制序列的形式在网络上传送。

当两个Java进程通信时,发送方需要将Java对象转换为字节序列,而接收方需要将字节序列恢复出Java对象。

4.jvm内存可简单分为三个区:

1、堆区(heap):用于存放所有对象,是线程共享的(注:数组也属于对象)

2、栈区(stack):用于存储基本数据类型的数据和对象的引用,是线程私有的(分为:虚拟机栈和本地方法栈)

3、方法区(method):用于存放类信息、常量、静态变量、编译后的字节码等,是线程共享的(也被称为非堆,即:Node-Heap)

Java的垃圾回收器(GC)主要针对堆区(关于对象的)

小拓展:在Java中对于不再使用的内存资源,如调用完成的方法时,会创建栈帧在栈中,调用完是程序自动出栈释放。所以和栈区有关

MYSQL的join连接

表一:user

表二:classes

接下来我们使用join来连接两张表

命令:

SELECT u.id as id,u.userName as username,u.passWord as papssword,c.name as classname from user u join classes c on c.cid=u.cid where u.id=2;

查询结果:

 

5.知识点

1、局部变量,不像成员变量那样类加载时就会初始化赋值,所以使用局部变量时,一定要给他先赋值,也就是定义时给它数值。成员变量只声明不初始化时调用输出是s=null,而局部变量必须初始化。

2、抽象类和接口类都无法实例化,

3.Java的"一次编译,多次运行":任何平台只要装有针对该平台的Java虚拟机,字节码文件( . class)就可以在该平台上运行

4.构造方法:对象的创建就是通过构造方法来完成,其主要功能主要是完成对象的初始化。当类实例化一个对象会自动调用构造方法

5.super关键字的作用:

(1)子父类存在同名的成员(包括变量和方法)时,在子类中默认访问的是子类的成员。调用super关键字可以指定访问父类的成员

(2)创建子类对象时,默认会先调用子类的无参构造方法,可以通过super关键字指定调用fu'lei'de指定调用父类的构造方法

6.this关键字

(1)如果在一个类中存在同名的成员变量和局部变量时,在方法内部默认访问的是局部变量,this关键字指定访问成员变量

(2)在一个构造函数中可以调用另外一个构造函数初始化对象;

7.由static修饰的方法,直接可以类名.方法名 调用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值