Java知识精要:String与StringBuffer、UUID、日期、线程、SpringMVC与Hibernate

需积分: 5 1 下载量 77 浏览量 更新于2024-07-17 收藏 1.58MB DOCX 举报
"这篇资料是关于Java编程语言的学习总结,涵盖了多个方面,包括基础概念、字符串操作、集合、日期处理、多线程、SpringMVC框架、Hibernate ORM库的使用等。作者在学习过程中不断积累知识,同时也分享了解决问题的方案。" ### Java基础知识 Java是一种广泛使用的面向对象的编程语言,具有跨平台、性能优异的特点。在学习Java时,了解其基本语法、类、对象、包、异常处理等概念是必不可少的。 ### UUID的生成 UUID(Universally Unique Identifier)用于生成全局唯一的标识符。在Java中,可以使用`java.util.UUID`类来生成UUID,它提供了静态方法如`randomUUID()`和`toString()`等。 ### 字符串操作 - **String、StringBuilder、StringBuffer**:String是不可变的,而StringBuilder和StringBuffer是可变的,适合在循环中进行字符串拼接。StringBuffer在多线程环境下是线程安全的,StringBuilder则在单线程环境下效率更高。 ### StringBuffer常用方法 - `append()`:追加字符串 - `deleteCharAt(int index)`:删除指定位置的字符 - `insert(int index, String str)`:在指定位置插入字符串 - `reverse()`:反转字符串 - `setCharAt(int index, char ch)`:设置指定位置的字符 - `trimToSize()`:调整容量至实际长度,减少内存浪费 ### Arrays的用法 `java.util.Arrays`类提供了对数组的各种操作,如排序、复制、填充、查找、比较等。 ### Collection框架 Java集合框架包括List、Set、Map等接口及其实现类。List接口代表有序的列表,允许重复元素。 ### 日期类的使用 Java中的日期时间处理可以使用`java.util.Date`、`java.time`包下的类,如LocalDate、LocalTime、LocalDateTime等。 ### 多线程 - **同步和异步**:同步是指多个线程按照一定的顺序执行,异步则是并发执行,互不影响。 - **并发(Concurrency)和并行(Parallelism)**:并发指多个任务在单个处理器上交替执行,而并行是指多个任务在多个处理器上同时执行。 - **临界区**:临界区是指一段代码,同一时刻只能有一个线程执行,通常通过synchronized关键字或Lock实现。 ### SpringMVC SpringMVC是Spring框架的一部分,用于构建Web应用程序。Model和ModelAndView的区别在于,Model是一个简单的模型对象,而ModelAndView包含了视图信息。 ### Hibernate Hibernate是一个ORM(对象关系映射)框架,简化了数据库操作。在使用中要注意对象的持久态、瞬时态和游离态的管理: - **瞬时态**:对象没有与Session关联,数据库中无对应记录。 - **持久态**:对象与Session关联,数据库中有对应记录,修改会体现在数据库。 - **游离态**:对象与Session失去关联,但数据库中有对应记录。 ### Hibernate注解 - `@Enumerated`:用于枚举类型的映射。 - `@Lob`:标记大对象,如BLOB或CLOB。 - `@JsonIgnore`:用于忽略JSON序列化过程中的字段。 - `@SuppressWarnings`:抑制编译警告。 - `@Column`:定义字段在数据库中的列名。 - `@OneToMany`、`@ManyToOne`、`@ManyToMany`:分别表示一对多、多对一和多对多的关系映射。 ### SQL操作 `execute()`和`executeUpdate()`都是用于执行SQL语句,`execute()`用于执行查询语句,返回ResultSet,而`executeUpdate()`用于执行DML(增删改)语句,返回受影响的行数。 ### Hibernate操作注意事项 在使用Hibernate更新和查询对象时,要特别注意对象的状态和数据库中的记录是否匹配,避免出现异常。例如,更新时应先检查对象是否存在,查询时理解延迟加载的概念,避免不必要的数据库交互。