HTML概述介绍
摘要:概述:是最基础的网页开发语言 Hyper Text Markup Language超文本标记语言 超文本 超文本是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本 标记语言 由标签构成的语言。<标签名称>如html,xml 标记语言不是编程语言 搜索 复制
阅读全文
posted @
2022-07-31 21:31
淤泥不染
阅读(22)
推荐(0) 编辑
概念介绍_软件架构和概念介绍_资源分类
摘要:web概念概述 javaWeb 使用Java语言基于互联网的项目 软件架构 C / S: Client / Server 客户端/服务器端 在用户本地有一个客户端程序,在远程一个服务器端程序 如:QQ 迅雷 . . . 优点: 用户体验好 缺点: 开发 安装 部署 维护 麻烦 B / S : Bro
阅读全文
posted @
2022-07-31 20:40
淤泥不染
阅读(19)
推荐(0) 编辑
JdbcTemplate_执行DML语句和JdbcTemplate_执行DQL语句
摘要:修改1号数据的salary 为 10000 private JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource()); @Test public void test1(){ String sql = "update emp
阅读全文
posted @
2022-07-28 16:00
淤泥不染
阅读(41)
推荐(0) 编辑
JDBCTemplate_介绍和JDBCTemplate_快速入门
摘要:Spring框架对jdbc的简单分装,提供了一个JDBCTemplate对象简化JDBC的开发 步骤: 导入jar包 创建JDBCTemplate对象。依赖与数据源DataSource jdbcTemplate template = new jdbcTemplate(ds) 调用jdbcTempal
阅读全文
posted @
2022-07-28 15:02
淤泥不染
阅读(111)
推荐(0) 编辑
数据库连接池druid_工具类和数据库连接池druid_工具类测试
摘要:定义一个工具类 定义一个类 JDBCUtils 提供静态代码块加载配置文件,初始化连接池对象 提供方法 获取连接方法 :通过数据库连接池获取连接 释放资源 获取连接池的方法 java代码实现 : private static DataSource ds; static { Properties pr
阅读全文
posted @
2022-07-28 10:41
淤泥不染
阅读(38)
推荐(0) 编辑
数据库连接池_c3p0_配置演示和数据库连接池_druid_基本使用
摘要:java第一种方式 DataSource ds = new ComboPooledDataSource(); for (int i = 1; i <=11; i++) { Connection connection = ds.getConnection(); System.out.println(i
阅读全文
posted @
2022-07-28 10:02
淤泥不染
阅读(20)
推荐(0) 编辑
数据库连接池_实现介绍和数据库连接池基本使用
摘要:实现: 标准:接口DataSource javax.sql报下。 方法: 获取连接 :getConnction(); 归还连接 :Connection.close()。如果连接对象是从池中获取的,那么调用Connection.close()方法,则不会在关闭连接了而是归还连接 一般我们不去实现它,有
阅读全文
posted @
2022-07-28 09:23
淤泥不染
阅读(56)
推荐(0) 编辑
JDBC事务管理_实现和 数据库连接池概述
摘要:创建一张表 CREATE TABLE account( id int PRIMARY KEY Auto_increment, name varchar(10), balance DOUBLE ); INSERT INTO account (name,balance) VALUES ('zhangsa
阅读全文
posted @
2022-07-27 17:31
淤泥不染
阅读(16)
推荐(0) 编辑
Jdbc事务的管理和Jdbc事务的管理_概述
摘要:SQL注入问题∶在拼接sql时,有一些sql的特殊关键字参与字符串的拼接。会造成安全性问题 1.输入用户随便,输入密码:a' or 'a' = 'a 2. sql : select * from user where username = 'fhdsjkf' and password = 'a' o
阅读全文
posted @
2022-07-27 15:06
淤泥不染
阅读(27)
推荐(0) 编辑
JDbc工具类和Jdbc练习_登录案例
摘要:抽取JDBC工具类:JDBCutils 目的简化:书写 分析 : 注册驱动也抽取 抽取一个方法获取连接对象 需求:不想传递参数(麻烦)还得保证工具类通用性 解决:配置文件 jdbc .proprietys url = user = password= 抽取一个方法释放资源 java代码: priva
阅读全文
posted @
2022-07-27 14:33
淤泥不染
阅读(26)
推荐(0) 编辑
JDBC练习_select语句
摘要:定义一个方法,查询emp表的数据将其封装为对象,返回 定义emp;类编写对应字段。 定义方法 public List <Emp> find(){ } 实现方法 select * from emp; java代码实例: @Data @NoArgsConstructor @AllArgsConstruc
阅读全文
posted @
2022-07-26 21:25
淤泥不染
阅读(80)
推荐(0) 编辑
JDBC各类详解_ResultSet_基本使用和JDBC各类详解_ResultSet_遍历结果集
摘要:ResultSet:结果集对象,封装查询结果 next(); getXxx(参数):获取数据 xxx:代表数据类型 如: int getInt(), String getString() 参数: int :代表列的编号,从1开始, 如:getString(1) String:代表列名称。如 : ge
阅读全文
posted @
2022-07-26 16:45
淤泥不染
阅读(81)
推荐(0) 编辑
jdbc练习_update语句和JDBC练习_update、DDL语句
摘要:需求:修改一条数据 java代码实例: Statement statement = null; Connection connection = null; try { Class.forName("com.mysql.cj.jdbc.Driver"); String sql = "update ac
阅读全文
posted @
2022-07-26 16:05
淤泥不染
阅读(83)
推荐(0) 编辑
JDBC各类详解_statement和JDBC练习_insert语句
摘要:statement:执行sql的对象 执行java boolean execute(String sql) 可执行任意的SQL了解 int executeUpdate(String sql) : 执行DML (insert update delete)语句DDL(create,alter,drop)
阅读全文
posted @
2022-07-26 15:49
淤泥不染
阅读(216)
推荐(0) 编辑
数据库连接简化和JDBC介绍各类详解_connection
摘要:方法: static connection getconnection(string url,string user,string password); 参数∶ url :指定连接的路径 语法:jdbc :mysql:/ /ip地址(域名):端口号/数据库名称*例子:jdbc :mysql: / /
阅读全文
posted @
2022-07-26 15:16
淤泥不染
阅读(92)
推荐(0) 编辑
JDBC快速入门和JDBC个类详细_DriverManger_注册
摘要:快速入门步骤: 导入驱动jar包 注册驱动 获取数据库连接对象 Connection 定义SQL 获取执行SQL语句的对想statement 执行SQL,接受返回结果 处理集合 释放资源 java代码: //导入驱动jar包 //注册驱动 Class.forName("com.mysql.cj.jd
阅读全文
posted @
2022-07-26 14:51
淤泥不染
阅读(29)
推荐(0) 编辑
DCL_管理权限和JDBC概述
摘要:查询权限 -- 查询权限 SHOW GRANTS FOR 张三@localhost; 授予权限 -- 授予权限 GRANTS SELECT,DELETE,UPDATE ON a2.account TO 张三@localhost; -- 给张三用户设置所有权限 GRANTS ALL *.* TO '张
阅读全文
posted @
2022-07-26 13:57
淤泥不染
阅读(33)
推荐(0) 编辑
DCL_管理用户_增删查和管理用户_修改密码
摘要:SQl分类: DDL:操作数据库和表 DML:增删改表中数据 DQL:查询表中数据 DCL:查询用户 DBA:数据库管理员 DCL:管理用户,授权 管理用户: 添加用户 -- 创建用户 CREATE user '用户名'@'主机名' IDENTIFIED BY '密码'; CREATE user '
阅读全文
posted @
2022-07-26 13:13
淤泥不染
阅读(29)
推荐(0) 编辑
事务_事务隔离级别演示1和事务_事务隔离级别演示2
摘要: 1.read uncommitted:读未提交 演示: set global transaction isolation level read uncommitted; start transaction; - - 转账操作 update account set balance = b
阅读全文
posted @
2022-07-26 10:59
淤泥不染
阅读(21)
推荐(0) 编辑
事务_事务隔离级别介绍
摘要:事务隔离级别: 概述:多个事务之间,相互独立。但是如果多个事务操作同一批数据,则会引发一些问题,设置不同的隔离级别就可以解决了 存在问题: 脏度:一个事务,读取到另一个事务中没有提交的数据 不可重复的度(虚读):在同一个事务中,两次读取到的数据不一样。 幻读:一个事务操作(DML)数据表中所有记录,
阅读全文
posted @
2022-07-25 17:41
淤泥不染
阅读(29)
推荐(0) 编辑
事务_默认自动提交&手动提交和事务四大特征
摘要:事务提交的两种方式 自动提交 mysql就是自动提交的 一条DML(增删该)语句会自动提交一次事务。 手动提交 Oracle 数据库默认是手动提交事务 需要先开启事务,在提交 先开启事务的默认提交方式:Select @@autocommit; --1代表自动提交 0代手动提交 修改默认提交方式:se
阅读全文
posted @
2022-07-25 17:13
淤泥不染
阅读(433)
推荐(0) 编辑
多表查询_练习3和事务基本_演示
摘要:查询出部门编号、部门名称、部门位置、部门人数 -- 查询出部门编号、部门名称、部门位置、部门人数 SELECT t1.id,t1.dname,t1.loc,t2.total FROM dept t1,(SELECT dept_id,count(id) total FROM emp GROUP BY
阅读全文
posted @
2022-07-25 16:41
淤泥不染
阅读(26)
推荐(0) 编辑
多表查询_练习1和多表查询_练习2
摘要:多表查询_练习1 创建表 -- 部门表 CREATE TABLE dept ( id INT PRIMARY KEY PRIMARY KEY, -- 部门id dname VARCHAR(50), -- 部门名称 loc VARCHAR(50) -- 部门所在地 ); -- 添加4个部门 INSER
阅读全文
posted @
2022-07-25 15:49
淤泥不染
阅读(23)
推荐(0) 编辑
多表查询_子查询情况1和情况2和多表查询_子查询情况3
摘要:子查询不同情况 子查询的结果是单行单列的: 子查询可以作为条件,使用运算符去判断。运算符.。> >= < <= = -- 查询员工工资小于平均工资的人 SELECT * FROM emp where emp.salary < (SELECT AVG(salary) FROM emp); 子查询的结果
阅读全文
posted @
2022-07-25 14:54
淤泥不染
阅读(24)
推荐(0) 编辑
多表查询_外连接和多表查询_子查询
摘要:外连接查询: 语法:select 字段列表 from 表1 left [outer] join 表2 on 条件; 查询的是左表所有的数据以及交集的部分 -- 外连接 SELECT t1.*,t2.name FROM emp t1 LEFT JOIN dept t2 on t1.dept_id =
阅读全文
posted @
2022-07-25 14:24
淤泥不染
阅读(30)
推荐(0) 编辑
多表查询_概述和多表查询_内连接
摘要:select * from 表名,表名 查询多表 sql: -- 创建部门表 CREATE TABLE dept( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20) ); INSERT INTO dept(NAME) VALUES ('开发部')
阅读全文
posted @
2022-07-25 13:45
淤泥不染
阅读(22)
推荐(0) 编辑
三大范式详细和数据库的备份和还原
摘要:三大范式详细 学号 姓名 系名 系主任 课程名称 分数 10010 张无忌 经济系 张三丰 高等数学 95 10010 张无忌 经济系 张三丰 大学英语 27 10010 张无忌 经济系 张三丰 计算机基础 65 10011 令狐冲 法律系 任我行 法理学 77 10011 令狐冲 法律系 任我行
阅读全文
posted @
2022-07-25 11:25
淤泥不染
阅读(33)
推荐(0) 编辑
多表关系_案例和三大范式讲解
摘要:旅游线路分析 旅游线路 用户 图: 表 -- 创建旅游线路分类表 tab_category -- cid 旅游线路分类主键,自动增长 -- cname 旅游线路分类名称非空,唯一,字符串 100 CREATE TABLE tab_category( cid INT PRIMARY KEY AUTO_
阅读全文
posted @
2022-07-25 09:30
淤泥不染
阅读(39)
推荐(0) 编辑
多表关系_多对多关系实现和多表关系_一对一关系实现
摘要:多对多关系实现需要借助第三张中间表。中间表至少包含两个字段,这两个字段作为第三张表的外键,分别指向两张表的主键 多表关系_一对一关系实现 —对一关系实现,可以在任意一方添加唯一外键指向另一方的主键。 搜索 复制
阅读全文
posted @
2022-07-24 21:20
淤泥不染
阅读(40)
推荐(0) 编辑
多表关系介绍和多表关系—对多关系实现
摘要:多表之间的多表: 1.—对一(了解)∶ 如:人和身份证 分析:一个人只有一个身份证,一个身份证只能对应一个人2.一对多(多对一): 如∶部门和员工 分析:一个部门有多个员工,一个员工只能对应一个部门3.多对多︰ 如∶学生和课程 分析:一个学生可以选择很多门课程,一个课程也可以被很多学生选择 实现关联
阅读全文
posted @
2022-07-24 20:34
淤泥不染
阅读(35)
推荐(0) 编辑
约束_外键约束和约束_外键约束_级联操作
摘要:外键约束 -- 创建表 CREATE TABLE emp( id int PRIMARY KEY auto_increment, name varchar(30), age INT, dep_name VARCHAR(30), dep_location VARCHAR(30) ); -- 添加数据
阅读全文
posted @
2022-07-24 19:57
淤泥不染
阅读(40)
推荐(0) 编辑
约束_主键约束和自动递增
摘要:主键约束:primary key。 注意: 含义:非空且唯一 一张表只能有一个字段为主键 主键就是表中唯一的标示 -- 主键约束 CREATE TABLE stu1( id int PRIMARY KEY, NAME VARCHAR(20) ); -- 删除主键 ALTER TABLE stu1 D
阅读全文
posted @
2022-07-24 11:55
淤泥不染
阅读(27)
推荐(0) 编辑
约束_非空约束和约束_唯一约束
摘要:非空约束:not null 创建表示添加约束 sql -- 非空约束 CREATE TABLE stu1( id int, name VARCHAR(20) NOT NULL ); -- 删除name的非空约束 ALTER TABLE stu1 MODIFY NAME VARCHAR(20); --
阅读全文
posted @
2022-07-24 11:31
淤泥不染
阅读(29)
推荐(0) 编辑
DQL_条件查询和约束_概述
摘要:条件查询: where字句后面跟条件 用算符 > < >= <= = <> BETWEEN...AND IN(集合) Like IS Null and 或 && or 或 || not 或 ! mysql -- 查询年龄大于20岁 SELECT * FROM student WHERE age >
阅读全文
posted @
2022-07-24 10:51
淤泥不染
阅读(26)
推荐(0) 编辑
DQL__分组查询和DQL分页查询
摘要:分组查询: 语法:group by分组字段; 注意:分组之后查询的字段:分组字段、聚合函数 where和having 的区别? where 在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来 where后不可以跟聚含函数,having何
阅读全文
posted @
2022-07-24 10:13
淤泥不染
阅读(26)
推荐(0) 编辑
DQL_排序查询和DQL聚合函数
摘要:排序查询 语法:order by 字句 order by 排序字段1 排序方式1,排序字段2 排序方式2 . . . . 排序方式: ASC:升序,默认的 DESC:排序 注意: 如果有多个排序条件,则当前的条件值一样时,才会判断第二条件。 实例: DQL聚合函数 聚合函数:将一个数据作为一个整体,
阅读全文
posted @
2022-07-24 09:37
淤泥不染
阅读(20)
推荐(0) 编辑
DQL——基查询和DQL——条件查询——模糊查询
摘要:语法: select 字段列表 from 表名列表 where 条件列表 group by 分组字段 having 分组之后的条件 order by 排序 limit 分页限定 SQL: -- 查询年龄名字 SELECT name ,age FROM student; 计算math和English分
阅读全文
posted @
2022-07-23 20:53
淤泥不染
阅读(20)
推荐(0) 编辑
DML——删除数据和DML——修改数据
摘要:语法: delete from 表名 where 条件 注意 如果不加条件则删除表的所有数据 如果要删除所有记录 delete from 表名 不推荐使用。有多少记录就会执行多少 transition Table 表名 推荐使用 效率高 先删除变在创建一个一模一样的表 删除表 DML——修改数据 修
阅读全文
posted @
2022-07-23 16:59
淤泥不染
阅读(33)
推荐(0) 编辑
操作表_修改和DML添加数据
摘要:u(update) : 修改 修改表名 alter table 表名 rename to 新的表名; 修改表的字符集 alter table 表名 character set 字符集名称; 添加一列 alter table 表名 add 字段 类型; 修该名称 类型 alter table 表名 c
阅读全文
posted @
2022-07-23 16:40
淤泥不染
阅读(25)
推荐(0) 编辑
操作表_创建和操作表删除
摘要:c(create):创建 语句: create table 表名( 列名1 数据类型1 列名2 数据类型2 .... 列名n 数据类型n ); 注意:最后一列,不需要加逗号(,) 数据库类型: int :正数类型 double :小数类型 date :日期,只包含年月日,yyyy-MM-dd dat
阅读全文
posted @
2022-07-23 15:41
淤泥不染
阅读(30)
推荐(0) 编辑
DDL_操作数据库_修改&删除&使用和DDL操作_查询
摘要:U(Update:修改):修改数据库的字符集:alter database D(Delete):删除 删除数据库 drop database数据库名称; 判断数据库存在,存在再删除 : drop database if exists数据库名称; 使用数据库:查询当前正在使用的数据库名称 : sele
阅读全文
posted @
2022-07-23 14:39
淤泥不染
阅读(118)
推荐(0) 编辑
SQL分类和DDL操作数据库_创建&查询
摘要:1.DDL(Data Definition Language)数据定义的语言用来定义数据库的对象:数据库,表,列表,关键字 :create,drop alter等 2.DML(Data Manipulation Language)数据操作语言用来数据库中表的数据进行增删改,关键字 insert de
阅读全文
posted @
2022-07-23 14:09
淤泥不染
阅读(30)
推荐(0) 编辑
Sql基本概述和SQL通用语法
摘要:什么是Sql Structured Query Language : 结构化查询语言 其实就是定义了操作所有的关系的数据库的规则。每一种数据库操作的方式存在不一样 的地方,成为方言. Structure Query Language(结构化查询语言)简称SQL,它被美国国家标准局(ANSI)确定为关
阅读全文
posted @
2022-07-23 13:17
淤泥不染
阅读(74)
推荐(0) 编辑
mysql登录和退出和Mysql目录结构
摘要:MYSQL登录 : mysql -uroot -p密码 mysql -hip -uroot -p连接目标的密码 mysql --host=ip --user=root --password=连接目标的密码 MYSQl退出: exit quit Mysql目录结构 Mysql安装目录 配置文件my.i
阅读全文
posted @
2022-07-23 11:17
淤泥不染
阅读(20)
推荐(0) 编辑
常见的数据库软件介绍和mysql服务和启动
摘要:Oracle:收费的大型数据库,Oracle公司的产品。Oracle收购SUN公司,收购MYSQL DB2:IBM公司的数据库产品,收费的,常用在银行系统中 SQLServer:MIcroSoft 公司收费的中型的数据库。C#,net等常用语言使用 SyBase:已近淡出历史舞台,提供了一个非专业的
阅读全文
posted @
2022-07-23 10:42
淤泥不染
阅读(237)
推荐(0) 编辑
注解___案例___简单的测试框架和数据库的概述
摘要:小结: 以后大多数时候,我们会使用注解,而不是自定义注解 注解给谁用? 编译器 给解析程序用 注解不是程序的一部分,可以理解为注解就是一个标签测试: public class Calculator { @Check public void add(){ String str =null; str.t
阅读全文
posted @
2022-07-23 10:04
淤泥不染
阅读(19)
推荐(0) 编辑
注解_自定义注解_元注解和注解_解析注解
摘要:元注解:用于描述注解的注解 @Target :描述注解能够作用的位置 ElementType取值 type :可以作用于类上 METHOD :可以作用于方法上 FIELD : 可以用于成员变量上 @Retention :描述注解被保留的阶段 @Retention(RetentionPolicy.RU
阅读全文
posted @
2022-07-22 15:27
淤泥不染
阅读(21)
推荐(0) 编辑
自定义注解_格式_本质和自定义注解_属性定义
摘要:自定义注解: 格式: 元注释 public @interface 注解名称{} 本质:注解本质上就是一个接口,该接口默认继承Annotation接口 public @interface MyAnno extends java.lang.annotation.Annotation{} 属性:接口中可以
阅读全文
posted @
2022-07-22 14:39
淤泥不染
阅读(36)
推荐(0) 编辑
注解_概述和注解JDK内置注解
摘要:注解: 概述 :说明程序的。给计算机看的 注释 :用文字描述程序的。给程序员看 定义: 注解(Annotation)也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前 面,用来对这些元素进
阅读全文
posted @
2022-07-22 13:57
淤泥不染
阅读(28)
推荐(0) 编辑
反射_Class对象功能_获取method和反射案例
摘要:反射_Class对象功能_获取method Method:方法对象 执行方法 Object invoke(Object obj, Object.... args) 获取方法名称 String getName:获取方法名 代码实现: //获取Person的Class对象 Class personCla
阅读全文
posted @
2022-07-22 13:23
淤泥不染
阅读(65)
推荐(0) 编辑
反射_Class对象功能_获取Field和反射_Class对象功能_获取Construct
摘要:反射_Class对象功能_获取Field Field:成员变量 操作: 设置值 void set(Object ob, Object value) 获取值 get(Object obj) 忽略访问权限修饰符的安全的检查 举例: public class Person { private String
阅读全文
posted @
2022-07-22 11:02
淤泥不染
阅读(35)
推荐(0) 编辑
反射_获取字节码Class对象的三种方式和反射_Class对象功能概述
摘要:反射_获取字节码Class对象的三种方式 获取Class对象的方式: Class.from(“全类名”):将字节码文件加载内存,返回Class对象 类名.Class:通过类名的属性Class获取 对象.GetClass:getClass()方法在Object类中定义着 结论: 同提一个字节码文件(*
阅读全文
posted @
2022-07-22 10:37
淤泥不染
阅读(33)
推荐(0) 编辑
Junit@Before&@After和反射概述
摘要:补充: * @Before: *修饰的方法会在测试方法之前自动执行 * @After: *修饰的方法会在测试方法执行之后自动被执行 实例: @Before public void init(){ System.out.println("init"); } @After public void clo
阅读全文
posted @
2022-07-22 09:39
淤泥不染
阅读(49)
推荐(0) 编辑
Junit_使用步骤
摘要:Junit白盒测试: 步骤: 定义一个测试类(测试用例) 测试类名:被测试的类名Test Calculable 包名:XXX.XXX.xx.test cn.itcast.test 定义测试方法:可以独立运行 建立:Test测试的方法名 testAdd 返回值:void 参数列表: 空参 给方法加@T
阅读全文
posted @
2022-07-21 17:34
淤泥不染
阅读(135)
推荐(0) 编辑
方法引用_数组的构造器引用和Junit测试概述
摘要:数组也是object的子类对象,所以同样具有构造器,只是语法稍有不同。如果对应到Lambda的使用场景中时,需要一个函数式接口∶ 代码: @FunctionalInterface public interface ArrayBuilder { int[] builderArray(int lengt
阅读全文
posted @
2022-07-21 17:06
淤泥不染
阅读(34)
推荐(0) 编辑
方法引用_通过this引用本类的成员方法和方法引用_类的构造器(构造方法)引用
摘要:this指代当前对象,如果需要引用的方法就是本类当中的成员方法,那么可以使用***this::成员方法***格式来优化Lambda表达式 实现: @FunctionlInterface public intterface Study { // 定义一个学习抽象方法 void study(); } p
阅读全文
posted @
2022-07-21 16:31
淤泥不染
阅读(42)
推荐(0) 编辑
方法引用_通过类名引用静态成员方法和方法引用_通过super引用父类的成员方法
摘要:通过类名引用静态成员方法 类名已经存在,静态成员也已近存在 就可以通过类直接引用静态成员方法 代码如下: @FunctionalInterface public interface Calcable { int calsAbs(int number); } public static int met
阅读全文
posted @
2022-07-21 15:39
淤泥不染
阅读(43)
推荐(0) 编辑
方法引用基本介绍和通过对象名引用成员方法
摘要:分析: Lambda表达式的目的,打印参数传递的字符串 把参数s,传递给了System.out对象,调用out对象方法println对字符串进行输出 注意: 1.System.out对象是已经存在的 2.println方法也是存在的 所以我们可以使用方法引用来优化Lambda表达式 实现: @Fun
阅读全文
posted @
2022-07-21 14:32
淤泥不染
阅读(31)
推荐(0) 编辑
练习:集合元素处理(传统方式)和练习:集合元素处理(Stream方式)
摘要:练习:集合元素处理(传统方式) 现在有两个ArrayList集合存储队伍当中的多个成员姓名,要求使用传统的for循环(或增强for循环)依次进行以下若干操作步骤 1.第一个队伍只要名字为3个字的成员姓名;存储到一个新的集合中。 2.第一个队伍筛选之后只要前三个人;存储到一个新集合中 3.第二个队伍只
阅读全文
posted @
2022-07-21 13:44
淤泥不染
阅读(41)
推荐(0) 编辑
Stream流中的常用方法_limit和Stream流中的常用方法_skip
摘要:Stream流中的常用方法limit:用于截取流中的元素 limit方法可以对流进行截取,只取用前n个,否则不进行操作 Stream<T> limit(long maxSize); 参数是一个long型,如果集合当前长度大于参数则进行截取,否则不进行操作 limit方法是一个延迟方法,只是对流中的元
阅读全文
posted @
2022-07-21 11:20
淤泥不染
阅读(983)
推荐(0) 编辑
Stream流中的常用方法_map和Stream流中的常用方法_count
摘要:Stream流中的常用方法_map 如果需要将流中的元素映射到另一个流中,可以使用mapfangfa <R> Stream<R> map(Function<? super T,? extends R> mapper); 该接口需要一个Function函数接口参数式,可以将当前流中的T类型数据转换为另
阅读全文
posted @
2022-07-21 10:55
淤泥不染
阅读(581)
推荐(0) 编辑
Stream流中的常用方法_filter和Stream流的特点_只能使用一次
摘要:Stream流中的常用方法_filter Stream流中的常用方法_filter:用于对Stream流中的数据进行过滤 Stream<T> filter(Predicate<? super T> predicate); filter方法的参数Predicate是一个函数式接口,所以可以传递Lamb
阅读全文
posted @
2022-07-21 10:28
淤泥不染
阅读(513)
推荐(0) 编辑
两种获取Stream流的方式和Stream流中的常用方法——forEach
摘要:java.util.stream.Stream<T>是JDK 8新加入的最常用的流接口。(这并不是一个函数式接口) 获取一个流非常简单,有以下几种常用的方式: 所有的Collection集合都是可以通过stream默认方法获取流 default Stream<E> stream() Stream接口
阅读全文
posted @
2022-07-21 10:14
淤泥不染
阅读(514)
推荐(0) 编辑
使用Stream流的方式__遍历集合__对集合中的数据进行过滤和流式思想概念
摘要:使用Stream流的方式,遍历集合对集合中的数据进行过滤 Stream流JDK1.8之后出现的 关注的是坐什么,而不是怎么坐代码实现: //创建一个集合,存储名字 List<String> list = new ArrayList<>(); list.add("张无忌"); list.add("李四
阅读全文
posted @
2022-07-21 09:35
淤泥不染
阅读(375)
推荐(0) 编辑
常用的函数式接口_Function接口自定义函数模型拼接和使用传统的方式,遍历集合,对集合中的数进行过滤
摘要:练习:自定义函数模型拼接 题目 请使用Function进行函数模型的拼接,按照顺序需要执行的多个函数操作为: String str = "赵丽颖,20"; 分析: 1. 将字符串截取数字年龄部分,得到字符串; Function<String,String> "赵丽颖,20"->"20" 2. 将上一
阅读全文
posted @
2022-07-20 17:56
淤泥不染
阅读(79)
推荐(0) 编辑
常用的函数式接口_Function接口和常用的函数式接口_Function接口和默认方法AndThen
摘要:java.util.function.Function<T,R>接口用来根据一个类型的数据得到另一个类型的数据, 前者称为前置条件,后者称为后置条件。 Function接口中最主要的抽象方法为:R apply(T t),根据类型T的参数获取类型R的结果。 使用的场景例如:将String类型转换为In
阅读全文
posted @
2022-07-20 17:05
淤泥不染
阅读(83)
推荐(0) 编辑
常见的函数式接口_predicate接口_默认方法or & negate 和常见的函数式接口_predicate接口_集合信息的筛选
摘要:需求:判断一个字符串,有两个判断的条件 1.判断字符串的长度是否大于5 2.判断字符串中是否包含a 满足一个条件即可,我们就可以使用||运算符连接两个条件 Predicate接口中有一个方法or,表示或者关系,也可以用于连接两个判断条件 default Predicate<T> or(Predica
阅读全文
posted @
2022-07-20 16:41
淤泥不染
阅读(40)
推荐(0) 编辑
常用的函数式接口_Predicate接口和常用的函数式接口_Predicate接口_默认方法and方法
摘要:java.util.function.Predicate<T>接口 作用:对某些数据的数据类型进行判断,结果返回一个boolean值 Predicate接口中包含一个抽象方法: boolean test(T t):用来指对数据类型进行判断方法 结果: 符合条件:true 不符合条件:false 实现
阅读全文
posted @
2022-07-20 15:48
淤泥不染
阅读(27)
推荐(0) 编辑
常用的函数式接口Consumer接口——默认方法andThen和常用函数式接口_Consumer接口练习_字符串拼接输出
摘要:如果一个方法的参数和返回值都是Consumer类,那么就可以实现效果:消费的数据的时候,首先做一个操作,然后 在做一个操作,实现组合。而这个方法就是Consumer 接口中的default方法andThen 。下面是JDK的源代码 备注:java.util.Objects 的requireNonNu
阅读全文
posted @
2022-07-20 15:12
淤泥不染
阅读(67)
推荐(0) 编辑
常用的函数式接口Supplier接口练习求最大值和常用的函数式接口_Consumer
摘要:定义一个方法,用于获取int类型数组中元素的最大值,方法的参数传递Supplier接口,泛型使用Integer 定义一个int类型的数组,并赋值 调用getMax方法,方法的参数Supplier是一个函数式接口,所以可以传递Lambda表达式 获取数组的最大值,并返回 定义一个变量,把数组中的第一个
阅读全文
posted @
2022-07-19 17:49
淤泥不染
阅读(36)
推荐(0) 编辑
函数式接口作为方法的返回值类型案例和常用的函数式接口_Supplier接口
摘要:类似地,如果一个方法的返回值类型是一个函数式接口,那么就可以直接返回一个Lambda表达式。当需要通过一个方法来获取一个java.util.Comparator 接口类型的对象作为排序器时,就可以调该方法获取。 代码: 方法的返回值类型是一个接口,那么我们可以返回这个接口的匿名内部类 return
阅读全文
posted @
2022-07-19 17:20
淤泥不染
阅读(88)
推荐(0) 编辑
使用lambda优化日志案例和函数式接口作为方法的参数案例
摘要:使用lambda优化日志案例lambdad特点:延迟加载lambdad的使用前提,必须存在函数是接口 使用Lambda表达式作为参数传递,仅仅是把参数传递到showLog方法中 只有满足条件,日志的等级是1级 才会调用接口MessageBuilder中的方法builderMessage 才会进行字符
阅读全文
posted @
2022-07-19 16:47
淤泥不染
阅读(22)
推荐(0) 编辑
函数式接口的使用和性能浪费的日志案例
摘要:函数式接口的使用: 调用show方法,方法的参数是一个接口所以可以传递接口的实现类对象 调用show方法,方法的参数是一个接口所以我们可以传递接口的匿名内部类 调用show方法,方法的参数是一个接口所以我们可以使用lambda表达式 简化lambda表达式 代码实现: 性能浪费的日志案例 调用sho
阅读全文
posted @
2022-07-19 15:55
淤泥不染
阅读(21)
推荐(0) 编辑
模拟BS服务器代码实现和函数式接口的概念&函数式接口的的定义
摘要:模拟BS服务器代码实现和函数式接口 代码实现: ServerSocket server = new ServerSocket(9090); while (true){ Socket socket = server.accept(); new Thread(new Runnable() { @Over
阅读全文
posted @
2022-07-19 15:29
淤泥不染
阅读(35)
推荐(0) 编辑
综合案例_文件上传案例优化(文件命名&循环接受&多线程提高效率)和模拟BS服务器分析
摘要:文件命名: 循环接受: 多线程提高效率: 模拟BS服务器分析 代码: 图: 搜索 复制
阅读全文
posted @
2022-07-19 11:35
淤泥不染
阅读(27)
推荐(0) 编辑
综合案例_文件上传案例的服务器端和综合案例_文件上传案例阻塞问题
摘要:明确: 数据源:客户端上传的文件 目的地:服务器的硬盘 e:\\upload\\1.jpg 实现步骤: 1.创建一个服务器ServerSocket对象,和系统要指定的端口号 2.使用ServerSocket对象中的方法accept,获取到请求的客户端Socket对象 3.使用Socket对象中的方法
阅读全文
posted @
2022-07-19 10:30
淤泥不染
阅读(19)
推荐(0) 编辑
综合案例_文件上传原理和综合案例_文件上传案例的客户端
摘要:原理图: 综合案例_文件上传案例的客户端 明确: 数据源:D:\\1.jpg 目的地:服务器 实现步骤: 1.创建一个本地字节输入流FileInputStream对象,构造方法中绑定要读取的数据源 2.创建一个客户端Socket对象,构造方法中绑定服务器的IP地址和端口号 3.使用Socket中的方
阅读全文
posted @
2022-07-19 10:05
淤泥不染
阅读(21)
推荐(0) 编辑
TCP通信的客户端代码实现和TCP通信的服务器端代码实现
摘要:在java中,提供了两个类用于TCP通信: 客户端:java.net.Socket类表示,创建Socket对象,向服务器发送连接请求 服务器端:Java.net.ServerSocket类表示创建ServerSocket对象,相当于开启一个服务,并等待客户端的连接 TCP通信的客户端:向服务器发送连
阅读全文
posted @
2022-07-19 09:19
淤泥不染
阅读(62)
推荐(0) 编辑
TCP通信的概述(上)和TCP通信的概述(下)
摘要:概述 TCP通信能实现两台计算机之间的数据交互,通信的两端,要严格区分为客户端(Client )与服务端(Server )。 两端通信时步骤: 1服务端程序,需要事先启动,等待客户端的连接。 2客户端主动连接服务器端,连接成功才能通信。服务端不可以主动连接客户端。 JAVA中,提供了两个类实现TCP
阅读全文
posted @
2022-07-18 17:33
淤泥不染
阅读(20)
推荐(0) 编辑
IP地址和端口号
摘要:IP地址:指互联网协议地址 ( Internet Protocol Address ),俗称IP。IP地址用来给一个网络中的计算机设备做唯一的编号。 假如我们把"个人电脑"比作"一台电话"的话,那么""IP地址"就相当于"电话号码”。 IP第分类: IPv4∶是一个32位的二进制数,通常被分为4个字
阅读全文
posted @
2022-07-18 16:52
淤泥不染
阅读(594)
推荐(0) 编辑
网络通信协议和网络通信协议分类
摘要:网络通信协议: 通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则,这就好比在道路中行驶的汽车一定要遵守交通规则一样。 在计算机网络中,这些连接和通信的规则被称为网络通信协议,它对数据的传输格式、传输速率、传输步骤等做了统一规定,通信双方必须同时遵守
阅读全文
posted @
2022-07-18 15:55
淤泥不染
阅读(379)
推荐(0) 编辑
打印流概述和使用和软件结构
摘要:java.io.PrintStream打印流PrintStream为其他输出流添加了功能,使他们能够方便地打印各种数据值表示形式PrintStream特点 1、只负责数据的输出,不负责数据的读取 2.与其他输出流不同不会抛出IOException异常 3.有特有的方法: print(); print
阅读全文
posted @
2022-07-18 15:09
淤泥不染
阅读(33)
推荐(0) 编辑
lnvalidClassException异常_原理和解决方案和案例_序列化集合
摘要:可以手动给类添加一个序列号格式,在SerialiVersionUID接口中规定: 可序列化类可以通过声明名为”serialVersionUID”的字段(该字段必须是静态(static)、最终(final)的long型字段)显示声明其自己的serialVersionUID: Static final
阅读全文
posted @
2022-07-18 14:16
淤泥不染
阅读(25)
推荐(0) 编辑
对象的反序列化_objectInputStream和transient关键字_瞬态关键字
摘要:构造方法: ObjectInputStream(InputStream in) 创建从指定InputStream读取的ObjectInputStream 参数: InputStream in:字节输入流特有的成员方法: void readObject(Object obj) 从ObjectInput
阅读全文
posted @
2022-07-18 11:58
淤泥不染
阅读(25)
推荐(0) 编辑
序列化和反序列化的概述和对象的序列化流ObjectOutputStream
摘要:Java 提供了一种对象序列化的机制。用一个字节序列可以表示一个对象,该字节序列包含该 对象的数据 、 对象的类型 和 对象中存储的属性 等信息。字节序列写出到文件之后, 相当于文件中持久保存了一个对象的信息。反之,该字节序列还可以从文件中读取回来,重构对象,对它进行反序列化。对象的数据 、 对象的
阅读全文
posted @
2022-07-18 11:35
淤泥不染
阅读(25)
推荐(0) 编辑
InputStreamReader介绍和代码实现和练习转换文件编码
摘要:InputStreamReader是字节流通向字符流的桥梁,它使用指定的charter读取为字节将其解码为字符继承自父类的共性成员方法: int read() 读取单个字符并返回。 int read(char[]cbuf)-次读取多个字符,将字符读入到数组 void close()关闭流并且释放与之
阅读全文
posted @
2022-07-18 10:51
淤泥不染
阅读(337)
推荐(0) 编辑
转换流的原理和OutputStreamwriter介绍和代码实现
摘要:原理图: 注意: FileReader 1.其实所有的底层都是FileInputStream来读的,先读取到字节 再FileReader(这个时候用的UTF-8来解码的来read的)把字节转换为字符(相当于解码) 但是如果存储的是GBK格式,则FileInputStream读取的字节时Gbk格式 但
阅读全文
posted @
2022-07-18 10:06
淤泥不染
阅读(100)
推荐(0) 编辑
编码引出的问题_FileReader读取GBK格
摘要:FileReader可以读取IDE默认编码格式(UTF-8)的文件FileReader读取系统默认编码(中文GBK)会产生乱码��� 代码举例: 搜索 复制
阅读全文
posted @
2022-07-15 10:03
淤泥不染
阅读(49)
推荐(0) 编辑
练习_对文本的内容进行排序和字符编码和字符集
摘要:分析: 1.创建一个HashMap集合对象,可以:存储每行文本的序号(1,2,3,..);value:存储每行的文本 2.创建字符缓冲输入流对象,构造方法中绑定字符输入流 3.创建字符缓冲输出流对象,构造方法中绑定字符输出流 4.使用字符缓冲输入流中的方法readline,逐行读取文本 5.对读取到
阅读全文
posted @
2022-07-15 09:46
淤泥不染
阅读(43)
推荐(0) 编辑
BufferedWriter_字符缓存区输出流和BufferedReader_字符缓存区输入流
摘要:继承自父类的共性成员方法: void write(int c)写入单个字符 void write(char[] cbuf)写入字符数组 abstract void write(char[] cubf,int of ,int len)写入字符数组的某一部分,off数组开始索引,len写的字符个数 vo
阅读全文
posted @
2022-07-14 14:04
淤泥不染
阅读(61)
推荐(0) 编辑
BufferedInputStream字节缓存输入流和缓存流的效率测试_复制文件
摘要:java.io.BufferedInputstream extends InputstreamBufferedInputstream:字节缓冲输入流 继承父类的成员方法: int read():从输入流中读取数据的下一个字节 int read (byte[] b):从输入流中读取一定数量的字节,并将
阅读全文
posted @
2022-07-14 13:32
淤泥不染
阅读(70)
推荐(0) 编辑
缓存流的原理和BufferedOutputStream字节缓存输出流
摘要:当我们进行数据读写时,是要从硬盘中读取,从硬盘读取速度时比较慢的。但你创建缓存流时就会创建一个缓存区,从缓存区中的速度还是比较快的。开始读取数据时,会先看缓存区中是否有数据,如果没有,就先把硬盘中的数据读到缓存区里,缓存区的大小为8192。然后再把缓存区的数据读到中转站里。中转站中数据也会写到缓冲区
阅读全文
posted @
2022-07-14 11:37
淤泥不染
阅读(230)
推荐(0) 编辑
Properties集合中的方法store和Properties集合中的load
摘要:使用Properties集合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储: void store(OutputStream out,String comments) void store(Writer writer,String comments) 参数: OutputStream
阅读全文
posted @
2022-07-14 10:57
淤泥不染
阅读(91)
推荐(0) 编辑
JDK7和JDK9流中异常的处理和使用Properties集合存储数据遍历取出properties集合中的数据
摘要:JDK7的新特性 在try的后边可以增加一个(),在括号中可以定义流对象那么这个流对象的作用t或就在try中有效 try中的代码执行完毕,会自动把流对象释放,不用写finalLy 格式: try(定义流对象;定义流对象){ 可能会产生异常代码 }catch(异常类变量 变量名){ 异常的处理逻辑 }
阅读全文
posted @
2022-07-14 10:36
淤泥不染
阅读(17)
推荐(0) 编辑
字符输出流的续写和换行和使用try catch finally处理流中的异常
摘要:续写和换行: FileWriter(String filename,boolean oppend) FileWriter(File file,boolean oppend) 参数: String filename,File file 写入的目的地 boolean oppend:续写开关 true表示
阅读全文
posted @
2022-07-14 09:48
淤泥不染
阅读(36)
推荐(0) 编辑
flush方法和close方法的区别和字符输出流的其他方法
摘要:flush方法和close方法的区别: Flush:刷新缓冲区,流对象可以继承使用 close:先刷新缓冲区,然后通知系统释放资源,流对象不可以在被使用了 flush之后传入writer流可以继续使用 close之后流对象就不可以使用了 代码: 字符输出流的其他方法 void write(char[
阅读全文
posted @
2022-07-14 09:12
淤泥不染
阅读(222)
推荐(0) 编辑
字符输出流writer类Filewriter类的介绍和字符输出流的基本使用_写出单个字符到
摘要:java.io.Writer:字符输出流,是所有字符输出流的最顶层的父类,是一个抽象类 共性的成员方法: void write(int c) 写入单个字符。 void write(char[] cbuf)写入字符数组。 abstract void write(char[] cbuf, int off
阅读全文
posted @
2022-07-13 17:37
淤泥不染
阅读(55)
推荐(0) 编辑
字符输入流_Reader类&FileReader类介绍和字符输入流读取字符数据
摘要:java.io.Reader:字符输入流,是字符输入流的最顶层的父类,定义了一些共性的成员方法,是一个抽象类 共性的成员方法: int read() 读取单个字符并返回。 int read(char[] cbuf)一次读取多个字符,将字符读入数组。 void close() 关闭该流并释放与之关联的
阅读全文
posted @
2022-07-13 14:36
淤泥不染
阅读(78)
推荐(0) 编辑
练习_文件复和使用字节流读取中文的问题
摘要:明确: 数据源:F:a.txt 数据的目的 D:\\oo\\a.txt 文件复制步骤: 创建一个字节输入流对象,构造方法中绑定的要读的数据源 创建一个字节输出流对象,构造方法中绑定要写入的目的地 使用字节输入流对象中方法read读取文件 使用字节输出流中的方法write,把读取到的字节写到目的地的文
阅读全文
posted @
2022-07-13 14:10
淤泥不染
阅读(52)
推荐(0) 编辑
字节输入流一次读取一个字节的原理和字节输入流一次读取多个字节
摘要:1.新建new FileInputStream对象会指向要读取的文件 指向的是文件中的第一个字节 2.read();读取一个字节并返回 读取 read找JVM再OS再读取数据来 3.read方法读完一位会自动向后移动一位 先a 再 b 再移动一位c 再移动一位到结束标记(window系统的结束标记给
阅读全文
posted @
2022-07-13 11:13
淤泥不染
阅读(59)
推荐(0) 编辑
字节输入流inputStream类和FileInputStream类介绍和字节输入流读取字节数据
摘要:java.io.InputStream:字节输入流 次抽象类是表示字节输入的所有类的超类 定义了所有子类共性的方法: int read()从输入流中读取数据的下一个字节。 int read(byte[] b)从输入流中读取一定数量的字节,并将其存储在缓冲区数组b中。void close()关闭此输入
阅读全文
posted @
2022-07-13 10:09
淤泥不染
阅读(52)
推荐(0) 编辑
文件存储的原理和记事本打开和字节输出流的续写和换行
摘要:写数据的时候会把97转换为二进制的97 fos.write(97->1100001); 注意:硬盘中存储的都是字节,一个字节是八个比特位 八个一对八个一对(一个字节一个字节)来存储的 任意的记事本,打开文件的时候都会查询编码表,把字节转换为字符(0-123 查ASCII表 其他值查询系统默认码表 所
阅读全文
posted @
2022-07-13 09:30
淤泥不染
阅读(91)
推荐(0) 编辑
字节输出流_OutputStream类&FileOutputStream类介绍和字节输出流写入数据到文件
摘要:java.io.outputstream:字节输出流 此抽象类是表示输出字书流的所有类的超类。 定义了一些子类共性的成员方法: public void close():关闭此输出流并释放与此流相关联的任何系统资源。- public void flush() :刷新此输出流并强制任何缓冲的输出字节被写
阅读全文
posted @
2022-07-12 13:40
淤泥不染
阅读(227)
推荐(0) 编辑
IO概,述(概念&分类)和一切皆为字节
摘要:什么是IO 我们把数据的传输,可以看做是一种数据的流动,按照流动的方向,以内存为基准,分为输入input 和输出output ,即流向内存是输入流,流出内存的输出流。 Java中I/O操作主要是指使用 java.io 包下的内容,进行输入、输出操作。输入也叫做读取数据,输出也叫做作写出数据。 IO的
阅读全文
posted @
2022-07-12 13:09
淤泥不染
阅读(40)
推荐(0) 编辑
FileFilter过滤器的原理和使用和FileNameFilter过滤器的使用和Lambda优化程序
摘要:在File类中有两个和listFiles()重造的方法,方法的参数就是过滤器 public File[] listFiles(FileFilter filter)-- filter文件过滤器 Java.io.FileFilter接口:用于抽象路径名(File对象)的过滤器 作用:用来过滤文件(Fil
阅读全文
posted @
2022-07-12 11:30
淤泥不染
阅读(341)
推荐(0) 编辑
递归打印多级目录个和综合案例_文件搜索
摘要:图: 代码: 递归打印多级目录 综合案例_文件搜索 分析: 目录搜索,无法判断多少级目录,所以使用递归,遍历所有目录。 遍历目录时,获取的子文件,通过文件名称,判断是否符合条件。 代码 public static void main(String[] args) { File file = new
阅读全文
posted @
2022-07-12 10:01
淤泥不染
阅读(23)
推荐(0) 编辑
练习使用递归计算1-n之间的和使用递归计算阶乘
摘要:定义一个方法,使用递归计算1-n之间的和1十2+3+...+n n+(n-1)+( n-2)+...+1已知: 最大值:n最小值:1使用递归必须明确: 1.递归的结束条件 获职到1的时候结束2.递归的目的 获取下一个被加的数字( n-1) 代码: 原理图: 使用递归计算阶乘 阶乘:所有小于及等于该数
阅读全文
posted @
2022-07-12 09:24
淤泥不染
阅读(133)
推荐(0) 编辑
File类遍历(文件夹)目录功能和递归概念&分类&注意事项
摘要:File类逸历(文件夹)目录功能 public string[] list():返回一个String数组,表示该FiLe目录中的所有子文件或目录。 public File[] listFiles()﹔返回一个File数组,表示该FiLe目录中的所有的子文件或目录。 注意: List方法和listFi
阅读全文
posted @
2022-07-11 16:25
淤泥不染
阅读(111)
推荐(0) 编辑
File类判断功能的方法和File类创建删除功能的方法
摘要:public boolean existso : 此FiLe表示的文件或目录是否实际存在。用于尹断构造方法中的路径是否存在存在:true不存在:false 代码: public boolean isDirectory(:此FiLe表示的是否为目录。用于判断构造方法中给定的路径是否以文件夹结尾 是:t
阅读全文
posted @
2022-07-11 15:24
淤泥不染
阅读(48)
推荐(0) 编辑
绝对路径和相对路径和File类的构造方法
摘要:路径: 绝对路径:是一个完整的路径 以盘符开始(C:D)开始的路径 C:\\a.txt C: iluserslitcastllIdeaProjectsllshungyuan \\123.txt D:demo\\b.txt 相对路径:是一个在简化的路径 相对指的是相对于当前项目的根目录(C: \use
阅读全文
posted @
2022-07-11 14:02
淤泥不染
阅读(72)
推荐(0) 编辑
File类的概述和File类的静态成员变量
摘要:java.io.File类 文件和目录路径名的抽象表示形式 java把电脑中的文件和文件夹(目录)封装成了一个File类,我可以使用文件进行操作 我们可以使用file的方法 创建一个文件 删除一个文件 获取一个文件 判断文件/文件夹是否存在 对文件夹进行遍历 File类是一个与系统无关的类,任何的操
阅读全文
posted @
2022-07-11 13:21
淤泥不染
阅读(18)
推荐(0) 编辑
Lambda表达式有参数有返回值的练习(自定义接口)和Lambda省略格式&Lambda使用前提
摘要:给定一个计算器calculator接口,内含抽象方法calc可以将两个int数字相加得到和值 //调用invokecalc方法,方法的参数是一个接口,可以使用匿名内部类 定义一个方法 使用Lambda表达式简化匿名内部类的书写 Lambda省略格式&Lambda使用前提 优化lambda表达式 La
阅读全文
posted @
2022-07-11 10:38
淤泥不染
阅读(23)
推荐(0) 编辑
lamabda表达式的无参数无返回值的练习和lamabda表达式的有参数有返回值的练习
摘要:定义一个厨子Cook接口,内涵唯一的抽象方法makeFood 测试类 //定义一个方法,参数传递cook接口,方法内部调用Cook接口中的方法makeFood //调用invokeCook方法,参数是Cook接口,传递cook接口的匿名内部类对象 使用lambda表达式简化匿名内部类的书写 lama
阅读全文
posted @
2022-07-11 09:42
淤泥不染
阅读(20)
推荐(0) 编辑
编程思想转换&体验Lambda的更优写法和lambda标准格式
摘要:我们真的希望创建一个匿名内部类对象吗?不。我们只是为了做这件事情而不得不创建一个对象。我们真正希望做的事情是∶将run方法体内的代码传递给Thread类知晓。 传递一段代码**――这才是我们真正的目的。而创建对象只是受限于面向对象语法而不得不采取的一种手段方式。那,有没有更加简单的办法?如果我们将关
阅读全文
posted @
2022-07-10 14:59
淤泥不染
阅读(22)
推荐(0) 编辑
函数式编程思想概述和冗余Runnable代码
摘要:在数学中,函数就是有输入星、输出星的一套计算方案,也就是"拿什么东西做什么事情"。相对而言,面向对象过分强调"必须通过对象的形式来做事情”, 而函数式思想则尽量忽略面向对象的复杂语法――强调做什么,而不是以什么形式做。 面向对象的思想:做一件事情,找一个能解决这个事情的对象,记用对象的方法,完成事情
阅读全文
posted @
2022-07-10 14:38
淤泥不染
阅读(35)
推荐(0) 编辑
线程池的概念和原理和线程池的代码实现
摘要:线程池:其实就是一个容纳多个线程的容器,其中的线程可以反复使用,省去了频繁创建线程对象的操作,无需反复创建线程而消耗过多资源。 合理利用线程池能够带来三个好处∶1.降低资源消辄减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。 2.提高响应速度。当任务到达时,任务可以不需要的
阅读全文
posted @
2022-07-10 14:22
淤泥不染
阅读(42)
推荐(0) 编辑
等待唤醒机制实现_包子类&包子铺类和等待唤醒机制实现_吃货类&测试了类
摘要:资源类:包子类 设置包子的属性 皮 馅 包子的状态true又有false 代码: public class BaoZi { String pi; String xian; boolean flag = false; } 生产者(包子铺)英:是一个线程类,可以继承Thread设置线程任务(run):;
阅读全文
posted @
2022-07-10 13:54
淤泥不染
阅读(26)
推荐(0) 编辑
等待唤醒机制和等待唤醒机制需求分析
摘要:什么是等待唤醒机制 这是多个线程间的一种协作机制。谈到线程我们经常想到的是线程间的竞争( race ),比如去争夺锁,但这并不是故事的全部,线程间也会有协作机制。 就好比在公司里你和你的同事们,你们可能存在在晋升时的竞争,但更多时候你们更多是一起合作以完成某些任务。 就是在一个线程进行了规定操作后,
阅读全文
posted @
2022-07-09 19:13
淤泥不染
阅读(22)
推荐(0) 编辑
等待唤醒案例和线程间通信
摘要:等待唤醒案例:线程之间的通信: 创建一个顾客线程(消费者):告知老板要的包子的种类和数量,调用wait方法,放弃cpu的执行,进入到WALITTNG状态(无限等待) 创建一个老板线程(生产者):花了5秒做包子,做好包子之后,调用notify方法,唤醒顾客吃包子。 注意: 顾客和老板线程必须使用同步代
阅读全文
posted @
2022-07-09 17:16
淤泥不染
阅读(19)
推荐(0) 编辑
线程状态概述:和等待唤醒案例分析
摘要:我们创建了多个线程(新建状态)并调用start方法启动线程,这些线程有些抢到cpu执行权有些没有抢到,抢到的进入运行状态, 没抢到的进入阻塞状态,如果运行状态中的线程执行完毕(run()方法结束),或者调用stop()强制关闭线程,或者run()方法中产生异常,则会进入死亡状态. 阻塞状态:具有cp
阅读全文
posted @
2022-07-09 16:06
淤泥不染
阅读(27)
推荐(0) 编辑
静态同步方法和lock锁
摘要:静态的同步方法 锁对象是谁 不能是this this是创建对象之后产生的,静态方法优先于对象 静态方法的所对象是本类class属性 》class文件对象 举例: Lock锁 从JDK 5.0开始,Java提供了更强大的线程同步机制——通过显式定义同步锁对象来实现同步。同步锁使用Lock对象充当。 R
阅读全文
posted @
2022-07-09 15:18
淤泥不染
阅读(190)
推荐(0) 编辑
同步技术的原理:和解决线程安全问题_同步方法
摘要:同步技术的原理: synchronized内置锁就是Java的一种重量级锁 同步代码块和同步方法的好处:解决了多个线程同时被访问共享数据时的线程安全问题。 弊端:非常消耗资源,效率较低 作用:它可以解决并发编程中出现多个线程同时访问一个共享。 说明:synchronized是一个隐式锁,也是jvm内
阅读全文
posted @
2022-07-09 15:00
淤泥不染
阅读(84)
推荐(0) 编辑
线程安全问题产生原理和同步代码块
摘要:注意: 线程安全问题是不能产生的,我们可以让一个线程在访问共亨数据的时候无论是杏失去了cpu的执行权;让其他的线程只能等待.等特当前线程卖完票,其他线程在进行卖票 图: 线程安全问题同步代码块 通过代码块中的锁对象,可以使用任意的对象 但是必须保证多个线程使用的多对象是同一个 锁对象的作用: 把同步
阅读全文
posted @
2022-07-09 14:21
淤泥不染
阅读(14)
推荐(0) 编辑
线程安全问题概述和线程安全的代码实现
摘要:线程安全问题概述 如果有多个线程在同时运行,而这些线程可能会同时运行这段代码。程序每次运行结果和单线程运行结果是一样的,而且其他变量的值和预期的结果也是一样的,就是线程安全的。 图: 单线程程序 多线程没有共享数据 多线程共享数据 线程安全的代码实现 举例: 搜索 复制
阅读全文
posted @
2022-07-08 16:20
淤泥不染
阅读(17)
推荐(0) 编辑
Thread和Runnable的区别和匿名内部类方式实现线程的创建
摘要:实现RunnabLe接口创建多线程程序的好处: 避免了单继承的局限性 一个类只能继承一个类(一个人只能有一个亲爹),类继承了Thread类就不能继承其他的类 实现了Runnable接口,还可以继承其他的类,实现其他的接口 增强了程序的扩展性,降低了程序的耦合性(解耦)实现Runnable接口的方式,
阅读全文
posted @
2022-07-08 15:35
淤泥不染
阅读(119)
推荐(0) 编辑
Thread类的常用方法_sleep和_创建多线程程序的第二种方式_实现Runnable接口
摘要:public static void sleep(Long millis):使当前正在执行的线程以指定的毫秒数暂停(暂时停止执行)。毫秒数结束之后,线程继卖执行 sleep(简称线程休眠) 举例: 举例: public static void main(String[] args) throws I
阅读全文
posted @
2022-07-08 15:05
淤泥不染
阅读(45)
推荐(0) 编辑
Thread类的常用方法_获取线程名称的方法和Thread类的常用方法_设置线程名称的方法
摘要:Thread类的常用方法_获取线程名称的方 构造方法: 获取线程的名称: 1.使用Thread类中的方法getName(),String getName()返回该线程的名称。 2.可以先获取到当前正在执行的线程,使用线程中的方法getName()获取线程的名称,static Thread curre
阅读全文
posted @
2022-07-08 14:26
淤泥不染
阅读(58)
推荐(0) 编辑
多线程原理_随机性打印结果和多线程原理_多线程内存图解
摘要:对于CPU而言,就有了两条执行的路径,CPu就有了选着的权限CPU喜欢谁.就会执行那条路径,我们控制不了cpu。所有就有了程京的随机打印结果。两个线程一个main线程,一个新线程一起抢夺cpu的执行权(执行时间)谁抢到了谁执行对应的代码。 jVM执行main方法.找os开辟一条main方法通向cpu
阅读全文
posted @
2022-07-08 13:54
淤泥不染
阅读(24)
推荐(0) 编辑
主线程和创建多线程的方法---1创建Thread类的子类
摘要:什么是主线程呢?执行main方法的线程就是主线程。 Java程序中只有一个线程,执行从main方法开始,从上到下依次执行的程序为单线程程序。 :JVM执行main方法,main方法会进入到栈内存,JVM会找操作系统开辟一条main方法通向cpu的执行路径,cpu就可以通过这个路径来执行main方法,
阅读全文
posted @
2022-07-08 11:48
淤泥不染
阅读(110)
推荐(0) 编辑
线程概念和线程调度
摘要:线程∶线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。 简而言之:一个程序运行后至少有一个进程,一个进程中可以包含多个线程 图: 线程调度 分时调度:所有线程轮流使用CPU的使用校,平均分配每个线程占用
阅读全文
posted @
2022-07-08 11:18
淤泥不染
阅读(50)
推荐(0) 编辑
并发和并行和进程概念
摘要:并发:指两个或多个事件在同一个时问段内发生。 并行:指两个或多个事件在同一时刻发生(同时发生). 并发不是并行。并行是让不同的代码片段同时在不同的物理处理器上执行。并行的关键是同时做很多事情,而并发是指同时管理很多事情,这些事情可能只做了一半就被暂停去做别的事情了。 图: 进程概念: 进程︰是指一个
阅读全文
posted @
2022-07-08 10:36
淤泥不染
阅读(200)
推荐(0) 编辑
异常注意事项_子父类异常和自定义异常类
摘要:运行时异常被抛出可以不处理。即不捕获也不声明抛出。 如果finally有return语句,永远返回finally中的结果,避免该情况. 如果父类抛出了多个异常,子类重写父类方法时,抛出和父类相同的异常或者是父类异常的子类或者不抛出异常。 父类方法没有抛出异常,子类重写父类该方法时也不可抛出异常。此时
阅读全文
posted @
2022-07-08 10:05
淤泥不染
阅读(115)
推荐(0) 编辑
异常注意事项和异常注意事项_finally有return语句
摘要:多个异常使用捕获又该如何处理呢? 1.多个异常分别处理。 多个异常一次捕获,多次处理。 多个异常一次捕获一次处理。 图: //多个异常一次捕获异常 多个异常分别处理。 //运行时异常抛出可以不处理,即不捕获也不声明抛出 //默认给虚拟机处理,终止程序,什么时候不抛出时异常了,在来继续执行程序 异常注
阅读全文
posted @
2022-07-08 09:34
淤泥不染
阅读(25)
推荐(0) 编辑
Throwable类中3个异常处理的方法和finally代码块
摘要:hrowable类定义了3个异常处理方法 public string getllessage() :获取异常的描述信息,原因(提示给用户的时候,就提示错误原因。 public string tostring():获取异常的类型和异常描述信息(不用)。 public void printStackTr
阅读全文
posted @
2022-07-07 17:11
淤泥不染
阅读(93)
推荐(0) 编辑
throws关键字_异常处理的第一中方式交个别人处理和try_catch_异常处理的第二种方式,自己处理异常
摘要:throws关键字:异常处理的第一种万式,交给别人处理 作用:当方法内部抛出异常对象的时候,那么我们就必须处理这个异常对象 司以使用throws关键字处理异常对象,会把异常对象声明抛出给方法的调用者处理(自己不处理,给别人处理),最终交给JVw处L理-->中断处理使用格式:在方法声明时使用 使用格式
阅读全文
posted @
2022-07-07 16:36
淤泥不染
阅读(73)
推荐(0) 编辑
thorw关键字和Objects非空判断_requireNonNull方法
摘要:Throw关键字 作用:可以使用throw关键字在指定的方法中挞出指定的异常 使用格式: throw new xxxException(“异常产生的原因”) throw 关键字用于 方法体 内,并且抛出的是一个异常类对象 注意: throw关键字必须写在方法的内部 throw关键字后边new的对象必
阅读全文
posted @
2022-07-07 15:54
淤泥不染
阅读(29)
推荐(0) 编辑
异常分类和异常的产生过程解析
摘要:java.Lang. ThrowabLe:类是Java语言中所有错误或异常的超类。 Exceotion :编译期异常,进行编译(写代码)java程序出现的问题 RuntimeException:运行期异常,java程序运行过程中出现的问题 异常就相当于程序得了一个小毛病(感冒,发烧),把异常处理掉,
阅读全文
posted @
2022-07-07 15:13
淤泥不染
阅读(28)
推荐(0) 编辑
斗地主案例分析和和异常的概念
摘要:1准备牌特殊牌:大王小王52张牌:循环嵌套遍历两个集合/数组组装52张牌 2洗牌使用Collections中的方法shuffle(List) 3.发牌,一人一张轮流发牌,每人17张集合素引%3,剩余3张给底牌 4.排序使用collections中的方法soft(List) 5.看牌:可以使用查表方法
阅读全文
posted @
2022-07-07 14:32
淤泥不染
阅读(51)
推荐(0) 编辑
练习_计算一个字符串中每个字符出现次数和JDK9对集合添加的优化_of方法
摘要:分析: 使用scanner获取用广输入的字符串 创建Nap集合,key是字符串中的字符, value是字符的个数 遍历字符串,获取每一个字符 使用获取到的字符,去Map集合判断key是否存在 key存在 通过字符(key),获取value(字符个数) value++ put(key , value)
阅读全文
posted @
2022-07-06 17:43
淤泥不染
阅读(22)
推荐(0) 编辑
LinkedHashMap集合和Hashtable集合
摘要:Map接口的哈希表和链接列表实现,具有可预的迭代顺序。3. 底层原理:哈希表+链表(记录元素的顺序) key不允许重复无序 key不允许重复无有序 Hashtable集合 HashtablLe :底层也是一个哈希表,是一个线程安全的集合,是单线程集合,速度慢 HashMap :底层是一个哈希表,是一
阅读全文
posted @
2022-07-06 16:46
淤泥不染
阅读(50)
推荐(0) 编辑
Map集合遍历键值对方式和HashMap存储自定义类型键值
摘要:Map集合遍历的第二种方式:使用Entry对象遍历 Map集合中的方法: Set<Map.Entry<K,v>> entrySet()返回此映射中包含的映射关系的Set 视图。 使用Map集合中的方法entrySet(),把Nap集合中多个Entry对象取出来,存储到一个set集合中 .遍历set集
阅读全文
posted @
2022-07-06 16:26
淤泥不染
阅读(34)
推荐(0) 编辑
Map集合遍历键找值方式和Entity键值对对像
摘要:Aop集合的第一种遍历方式:通过键找值的方式 Map集合中的方法 Set<K> keyset()返回此映射中包含的键的set视图。 实现步骤: 使用Map集合中的方法keySet(),把ap集合所有的key取出来,存储到一个set集合中 遍历set集合,获取Aap集合中的每一个key 通过Aap集合
阅读全文
posted @
2022-07-06 15:54
淤泥不染
阅读(99)
推荐(0) 编辑
Map常用子类和Map接口的常用方法
摘要:map集合: 1.Map集合是一个双列集合,一个元素包含两个值(一个key,一个value) 2.Map集合中的元素,key和vaLue的数据类型可以相同,也可以不同 3.Map集合中的元素,key是不允许重复的, vaLue是可以重复的 4.Map集合中的元素,key和vaLue是一—对应 Has
阅读全文
posted @
2022-07-06 15:07
淤泥不染
阅读(35)
推荐(0) 编辑
Collections集合工具类的方法_sort(List,Compartarcor)和Map集合概述
摘要:public static <T> void sort(List<T> list):将集合中元素按照默认规则排序。 public static 〈T> void sort(List<T> lisg, Comparator<? super T>) :将集合中元素按照指定规则排序。 升序 按年龄排序 M
阅读全文
posted @
2022-07-06 13:48
淤泥不染
阅读(25)
推荐(0) 编辑
Collections集合工具类的方法_addAll&shuffle和Collections集合工具类sort(list)
摘要:public static <T> boolean addAll(Collection<T> c,T... elements) :往集合中添加一些元素。 public static void shuffle(List<?> list)打乱顺序打乱集合顺序。 举例: addAll shuffle Co
阅读全文
posted @
2022-07-06 13:12
淤泥不染
阅读(32)
推荐(0) 编辑
linkedHashset集合和可变参数
摘要:LinkedHashset集合特点:底层是一个哈希表(数组+链表/红黑树)+链表:多了一条链表(记录元素的存储顺序),保证元素有序 根据hashCode的值来决定元素的存储位置,但同时使用链表维护元素的存储位置; 遍历LinkedHashSet的元素时,按照添加元素的顺序来进行; LinkedHas
阅读全文
posted @
2022-07-06 11:33
淤泥不染
阅读(39)
推荐(0) 编辑
Set集合存储元素不重复的原理和HashSet存储自定义类型元素
摘要:set集合存储元素不里复的元素前提:存循的元素必须里写hashCode方法和equals方法 Set集合在调用add方法的时候,add方法会调用元素的hashCodc方法和equals方法,判断元素是否重复 set.add(s1) add方法会调用s1的hashCode方法计算字符电"abc"的哈希
阅读全文
posted @
2022-07-06 10:49
淤泥不染
阅读(93)
推荐(0) 编辑
哈希值和HashSet集合存储数据的结构(哈希表)
摘要:哈希值:是一个十进制的整数,由系统随机给出(就是对象的地址值,是一个逻辑地址,是模拟出来得到地址,不是数据实际存储的物理地址)3 在object类有一个方法,可以获取对象的哈希值 int hashcode()返回该对象的哈希码值。 hashcode方法的源码: public native int h
阅读全文
posted @
2022-07-06 09:58
淤泥不染
阅读(52)
推荐(0) 编辑
Vector集合介绍和hashset集合
摘要:Vector类可以实现可增长的对象数组。与数组一样,它包含可以使用整数索引进行访问的组件。但是,Vector的大小可以根据需要增大或缩小,以适应创建vector后进行添加或移除项的操作。 与新collection实现不同, vector是同步的 添加方法:addElement-ent(E obj)将
阅读全文
posted @
2022-07-06 09:21
淤泥不染
阅读(106)
推荐(0) 编辑
ArrayList集合和linkedList集合
摘要:ArrayList是List接口的一个实现类,它是程序中最常见的一种集合。 ArrayList集合数据存储的结构是数组结构。元素增删慢,查找快,由于日常开发中使用最多的功能为查询数据、遍历数据,所以ArrayList是最常用的集合。 许多程序员开发时非常随意地使用ArrayList完成任何需求,并不
阅读全文
posted @
2022-07-05 19:28
淤泥不染
阅读(21)
推荐(0) 编辑
数据结构_红黑树和list集合介绍
摘要:红黑树:特点:趋*于*衡树,查询的速度非常的快,查询叶子节点最大次数和最小次数不能超过2倍 红黑树:是一种自*衡二叉查找树 约束: 1.节点可以是红色的或者黑色的 2.根节点是黑色的 3.叶子节点(空节点)是黑色的 4.每个红色的节点的子节点都是黑色的 5.任何一个节点到其每一个叶子节点的所有路径上
阅读全文
posted @
2022-07-05 17:50
淤泥不染
阅读(52)
推荐(0) 编辑
数据结构_数组和数据结构_链表
摘要:数据结构_数组: 查询快:数组的地址是连续的,我们通过数组的首地址可以找到数组,通过数组的索引可以快速查找某一个元素 查找元素快:通过索引,可以快速访问指定位置的元素 查询慢:数组的长度是因定的,我们想要增加/删除一个元素必须创建一个新数组,把源数组的数据复制过来 指定索引位置增加元素︰需要创建一个
阅读全文
posted @
2022-07-05 16:23
淤泥不染
阅读(16)
推荐(0) 编辑
数据结构_栈和数据结构_队列
摘要:栈:stack,又称堆栈,它是运算受限的线性表,其限制是仅允许在标的一端进行插入和删除操作,不允许在其他任何位置进行添加、查找、删除等操作。 栈(stack),是一种线性存储结构, 特点: 先进后出(即,存进去的元素,要在后它后面的元素依次取出后,才能取出该元素)。例如,子弹压进弹夹, 先压进去的子
阅读全文
posted @
2022-07-05 14:54
淤泥不染
阅读(25)
推荐(0) 编辑
斗地主案例分析和案例的代码实现
摘要:1.准备牌:54张牌,存储到一个集合中特殊牌:大王小王 其他52张牌: 定义一个数组/集合,存储4种花色:♥♠♣♦ 定义一个数组/集合,存储13个序号:2,A,K....3 循环嵌套遍历两个数组/集合,组装52张牌:♠2♠A♠K♠3,♥2♥A♥K♥3 2.洗牌 使用集合工具类Collections的
阅读全文
posted @
2022-07-05 14:04
淤泥不染
阅读(57)
推荐(0) 编辑
定义和使用含有泛型的方法(1)和泛型通配符
摘要:定义含有泛型的方法:泛型定义在方法的修饰符和返回值类型之间 格式: 修饰符<泛型>返回值类型方法名(参数列表(使用泛型)){ 方法体; } 含有泛型的方法,在调用方法的时候确定泛型的数据类型 传递什么类型的参数,泛型就是什么类型 代码举例: public class GenericMethod {
阅读全文
posted @
2022-07-05 11:58
淤泥不染
阅读(32)
推荐(0) 编辑
使用泛型的好处和定义和使用含有泛型的类:
摘要:创建集合对象,使用泛型 好处: 1.避免了类型转换的麻烦,存储的是什么类型,取出的就是什么类型 2.把运行期异常(代码运行之后会抛出的异常),提升到了编译期(写代码的时候会报错) 弊端: 泛型是什么类型,只能存储什么类型的数据 代码举例: private static void show1() {
阅读全文
posted @
2022-07-05 10:53
淤泥不染
阅读(27)
推荐(0) 编辑
增强for循环和泛型的概念
摘要:增强for循环:底层使用的也是迭代器,使用for循环的格式,简化了迭代器的书写 是JDK1.5之后出现的新特性 collection<E>extends Iterable<E>:所有的单列集合都可以使用增强for public interface Iterable<T>实现这个接口允许对象成为“fo
阅读全文
posted @
2022-07-05 10:22
淤泥不染
阅读(18)
推荐(0) 编辑
迭代器的代码实现和迭代器的实现原理
摘要:迭代器的使用步骤(重点): 1.使用集合中的方法iterator()获取迭代器的实现类对象,使用Iterator接口接收(多态) 2.使用Iterator接口中的方法hasNext判断还有没有下一个元素 3.使用Iterator接口中的方法next取出集合中的下一个元素 举例: public sta
阅读全文
posted @
2022-07-05 10:03
淤泥不染
阅读(32)
推荐(0) 编辑
Collection集合和iterator接口介绍
摘要:boolean add(E e); 向集合中添加元素 booLean remove(E e); booLean remove(E e); void clear(); 清空集合所有的元素 booLean contains(E e); 判断集合是否为空 int size(); 获取集合的长度 objec
阅读全文
posted @
2022-07-05 09:33
淤泥不染
阅读(45)
推荐(0) 编辑
Collection集合概述和集合框架介绍AVI
摘要:Collection集合概述 集合:集合是java中提供的一种容器,可以用来存储多个数据。 集合和数组既然都是容器,它们有啥区别呢? 数组的长度是固定的。 集合的长度是可变的。 数组中存储的是同一类型的元素,可以存储基本数据类型值。集合存储的都是对象。而且对象的类型可以不-致。在开发中一般当对象多的
阅读全文
posted @
2022-07-04 23:57
淤泥不染
阅读(21)
推荐(0) 编辑
System类&StringBuilder类和StringBuilder的toString方法
摘要:构造方法: StringBuilder(); 创建一个空的字符串缓冲区对象 StringBuilder(String s); 根据传入的内容创建一字符串缓冲区对象 成员方法: String Builder appernd(Object obj); 添加内容 String Builder revers
阅读全文
posted @
2022-07-04 17:15
淤泥不染
阅读(33)
推荐(0) 编辑
System类的常用方式和StringBuilder原理
摘要:java.Lang. System类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作,在5ystem类的API文档中, 常用的方法有: public static long currentTimeMillis():返回以毫秒为单位的当前时间。 public static void arr
阅读全文
posted @
2022-07-04 16:13
淤泥不染
阅读(18)
推荐(0) 编辑
Calendar类的常用成员方法和时间日期相关类总结
摘要:Calendar类的成员变量: public int get(int fiela:返回给定日历字段的值。 public void set(int fieia, int value):将给定的日历字段设置为给定值。 public abstract void add(int fieLd,int amou
阅读全文
posted @
2022-07-04 15:10
淤泥不染
阅读(114)
推荐(0) 编辑
练习请使用日期时间相关的API和Calendar类介绍_获取对象的方式
摘要:分析: .使用scanner类中的方法next,获取出生日期 .使用DateFormat类中的方法parse,把字符串的出生日期解析为Date格式. .FoDate格式的出生日期转换为堂秒值 .获取当前的日期,转换为毫秒值 .使用当前白期的毫秒值-出生白期的毫秒值. .把毫秒值的差值转换为天(s/1
阅读全文
posted @
2022-07-04 13:46
淤泥不染
阅读(27)
推荐(0) 编辑
DateFormat类&SimpleDateFormat类介绍和DateFormat类的format方法和parse方法
摘要:java.text.DateFormat:是日期/时间格式化子类的抽象类 作用:格式化(也就是日期->文本)、解析(文本->日期》 成员方法: String format(Date date)按照指定的模式,把Date日期,格式化为符合模式的字符串。 Date parse(String source
阅读全文
posted @
2022-07-04 13:04
淤泥不染
阅读(69)
推荐(0) 编辑
Object类&Objects类总结和毫秒值的概述和作用
摘要:Object类 object类介绍: Object类是所有类的父类。一个类都会直接或者间接的继承自 该类该类中提供了一些非常常用的方法! toString方法: 作用:打印对象的信息 重写前:打印的是包名类名@地址值 重写后:打印的是对象中的属性值 equals方法 作用:比较两个对象的 重写前:比
阅读全文
posted @
2022-07-04 11:20
淤泥不染
阅读(42)
推荐(0) 编辑
重写Object类的equals方法和Objects类
摘要:object类的equaLs方法黑认比较的是两个对象的地址值,没有意义 所以我们需要重写equals方法,比较两个对象的属性值(name , age) 对象的属性值一样好,返回true;否则返回false 问题: 隐含着一个多态 object obj =p2_= new Person("古力娜扎""
阅读全文
posted @
2022-07-04 10:31
淤泥不染
阅读(25)
推荐(0) 编辑
Object类的toString方法和Object类的equals类
摘要:java.lang.Object类 类Object是类层次结构的跟(最顶层)类每个类都使用Object作为父(超)类 所有对象(包括数组)都实现这个类的方法 Person类默认继承了0bject类,所以可以使用object类中的tostring方法 string tostring()返回该对象的字符
阅读全文
posted @
2022-07-04 09:28
淤泥不染
阅读(20)
推荐(0) 编辑
发红包案例_普通红包平局分发和发红包案例_普通红包随机分发
摘要:发红包案例_普通红包平局分发 注意.totaLCount - 1代表,最后一个先留着 有零头,需要放在最后一个红包当中 随机分发红包: 随机分配,有可能多,有可能少。 最少1分钱,最多不超过“乘下金额平均数的2倍 ”第一次发红包,随机范围是0.01元~6.66元 第一次发完之后,乘下的至少是3.34
阅读全文
posted @
2022-07-03 21:41
淤泥不染
阅读(70)
推荐(0) 编辑
局部内部类的final问题和发红包案例_分析
摘要:局部内部类:如果希望访问所在方法的局部变量,那么这个局部变量必须是,有效final的。 备注:从java 8+开始,只要局部变量实施不变,那么final关键字可以省略 原因: new 出来的对象在堆内存中 局部变量是跟着方法走,在栈内存当中 方法运行结束之后,立刻出栈,局部变量就会立刻消失 但是ne
阅读全文
posted @
2022-07-03 20:51
淤泥不染
阅读(18)
推荐(0) 编辑
四种权限修饰符和内部类的概念与分类
摘要:Java中有四种权限修饰符: public >protected> ( default)> private 同一个类 (我自己) 同一个包(我邻居) 不同包子类(我儿子) 不同包非子类(陌生人) 注意事项:(default)并不是关键字"default”,而是根本不写。 举例: 内部类概述与分类 允
阅读全文
posted @
2022-07-03 18:30
淤泥不染
阅读(25)
推荐(0) 编辑
final关键字用于修饰局部变量和final关键字用于修饰成员变量
摘要:对于基本类型来说,不可变说的是变量当中的数据不可改变对于引用类型来说,不可变说的是变量当中的地址值不可改变—旦使用final用来修饰局部变量,那么这个变量就不能进行更改。—次赋值,终生不变 public static void main(String[] args) { int num = 1; S
阅读全文
posted @
2022-07-03 18:17
淤泥不染
阅读(218)
推荐(0) 编辑
final关键字用于修饰类和final关键字用于修饰成员方法
摘要:当final关键字用来修饰一个类的时候, 格式:pubLic final class类名称{ } 含义:当前这个类不能有任何的子类 注意:一个类如果是final的,那么其中所有的成员方法都无法进行覆盖重写 举例: final关键字修饰成员方法: 当final关键字用来修饰一个方法的时候,这个方法就是
阅读全文
posted @
2022-07-03 18:03
淤泥不染
阅读(61)
推荐(0) 编辑
USB接口案例:fanil
摘要:案例分析: 进行描述笔记本类,实现笔记本使用USB鼠标、USB键盘· USB接口,包含打开设备功能、关闭设备功能 笔记本类,包含开机功能、关机功能、使用USB设备功能鼠标类,要实现USB接口, 并具备点击的方法 键盘类,要实现USB接口,具备敲击的方法 代码: public interface Me
阅读全文
posted @
2022-07-03 17:54
淤泥不染
阅读(103)
推荐(0) 编辑
多态中成员方法的使用特点和多态的好处
摘要:在多态的代码当中,成员方法的访问规则是: 看new的是谁,就优先用谁,没有则向上找。 口诀。编译看左边,运行看右边。 编译看左边,左边是Fu,Fu当中没有methodzi方法,所以编译报错。 对比一下: 成员变量:编译看左边,运行还看左边。 成员方法:编译看左边,运行看右边。 父子都有,优先用子 子
阅读全文
posted @
2022-07-02 13:48
淤泥不染
阅读(39)
推荐(0) 编辑
接口的内容小结和多态中成员变量的使用特点
摘要:在Java 9+版本中,接口的内容可以有。 1. 成员变量其实就是常量,格式。 [public] [static] [final] 数据类型 数据名称 = 数据值 注意: 常量必须进行赋值,而且一旦赋值不能改变。 常量名称完全大写,用下划线进行分隔。 2.接口中最重要的就是抽象方法,格式: [pub
阅读全文
posted @
2022-07-02 10:15
淤泥不染
阅读(61)
推荐(0) 编辑
接口的常量的定义和使用
摘要:接口的常量的定义和使用: 接口当中也可以定义“成员变量”,但是必须使用public static final三个关键字进行修饰。 从效果上看,这其实就是接口的【常量】。 格式: public static final 数据类型 常用名称 = 数据值; 备注: —旦使用finaL天键字进行修饰,说明不
阅读全文
posted @
2022-07-01 19:06
淤泥不染
阅读(48)
推荐(0) 编辑
接口的定义基本格式和接口的默认方法使用
摘要:接口就是多个类的公共规范 接口是一种引用数据类型,最重要的内容就是其中的:抽象方法。 什么是接口:接口是一种特殊的抽象类,它不能包含普通方法。 格式: 注意:与定义类不同的是,在定义接口时,不再使用class关键字,而是使用 interface 关键字来声明接口定义的基本 接口的默认方法使用: 1:
阅读全文
posted @
2022-07-01 16:40
淤泥不染
阅读(343)
推荐(0) 编辑
抽象方法和抽象类的定义格式和抽象方法和抽象类的注意事项
摘要:抽象方法: 就是加上abstract关键字,然后去掉大括号,直接分号结束。 抽象类:抽象方法所在的类,必须是抽象类才行。在class之前写上abstract即可。 举例: 抽象方法和抽象类的注意事项: 抽象类不能创建对象,如果创建,编译无法通过而报错。只能创建其非抽象子类的对象。 理解:假设创建了抽
阅读全文
posted @
2022-07-01 15:48
淤泥不染
阅读(120)
推荐(0) 编辑
this关键字的用法和super与this关键字图解:
摘要:在本类的成员方法中,访问本类的成员变量。 在本类的成员方法中,访问本类的另—个成员方法。 在本类的构造方法中,访问本类的另一个构造方法。 this ( ...)调用也必须是构造方法的第一个语句,唯——个。 super和this两种构造调用,不能同时使用。 public class Fu { int
阅读全文
posted @
2022-07-01 15:22
淤泥不染
阅读(20)
推荐(0) 编辑
继承中方法的覆盖重写——应用场景和继承中构造方问的特点
摘要:设计原则:对于已近投入使用的类尽量不要进行修改,推荐定义一个新的类来重复利用其中的共性内容,并且添加改动新的内容 代码举例: public class Phone { public void call(){ System.out.println("打电话"); } public void send(
阅读全文
posted @
2022-07-01 14:36
淤泥不染
阅读(20)
推荐(0) 编辑
区分子类方法中重名的三种变量和方法覆盖重写的注意事项
摘要:局部变量: 直接写成员变量名 本类变量: this.成员变量名 父类变量: super.成员变量名 举例: 方法覆盖重写的注意事项: 1.必须保证父子类之间方法的名称相同,参数列表也相同。 @Override:写在方法前面,用来检测是不是有效的正确覆盖重写。 这个注解就算不写,只要满足要求,也是正确
阅读全文
posted @
2022-07-01 13:32
淤泥不染
阅读(39)
推荐(0) 编辑