javase
未读简述
properties文件
是一个属性文件,以键值对形式,不能重复。可以存储用户名和密码
xml文件用于数据存储和关系,存多个用户的时候,可以使用xml文件来存储用户名的多个信息
为系统配置作为信息
日志是把程序运行的信息记录到文件中去
properties
使用Map集合中的properties
不要把他当集合用,用来读写properties属性文件
1234567891011import java.io.*;import java.util.Properties;public class Test { public static void main(String[] args) throws Exception { Properties properties = new Properties(); properties.load(new FileReader("users.properties")); System.out.println(properties); } ...
排序算法
这些开发的时候基本用不到,但是笔试的时候用的比较高
是一组数据按照指定的顺序进行排列
java提供了一个接口Comparable来定义排序规则
12345678910111213141516public class Test implements Comparable<Test>{ private Integer stu_id; private Integer stu_age; public Student(Integer stu_id,Integer stu_age){ this.stu_id = stu_id; this.stu_age = stu_age; } public Student(){ } @Override public int compareTo(Test o) { return this.stu_age - o.stu_age; }}
大于0则前面大
等于0则 ...
javase
未读简介
File代表当前系统下的文件(文件夹)
可以获取文件的信心(大小,文件名,修改时间)
只能够对文献本身进行操作,不能读写文件里的数据
IO流用来读写数据
File代表文本,IO流用来代表数据
File
创建对象
12345678import java.io.File;public class Test { public static void main(String[] args) { File f1 = new File("E:\\work-testroot\\study\\java\\javahight\\javahight2\\ab.txt"); System.out.println(f1.length()); }}
分割符一般用/
File可以指定一个不存在的文件,其长度为0
分为绝对路径和相对路径
绝对路径是带盘符的
相对路径是模块中的路径,不带盘符
常用方法
文件信息
12345678910111213141516import java.io.File;public cl ...
javase
未读jdk8新特性
Stream
新出的一个特性,也叫Steram流
用来操作集合和数组的数据
可以使代码更简介,可读性更强
不使用:
12345678910111213141516171819import java.util.ArrayList;import java.util.Collections;import java.util.List;public class Test { public static void main(String[] args) { List<String> names = new ArrayList<>(); Collections.addAll(names, "aaa", "abb", "cccc"); // 修正了语法错误,使用逗号分隔元素 List<String> list = new ArrayList<>(); for (String name : nam ...
javase
未读其他相关
可变参数
一种特殊的形参
1数据类型...参数名称
可以不传参数,也可以传多个或者一个或者数组
12345678public class Test { public static void main(String[] args) { test(); } public static void test(int...nums){ }}
常常用来接受数据
可变参数在方法内部是一个数组
注意事项:
一个形参列表中,只能有一个可变参数
必须在形参列表的最后面
工具类
Collections是一个用来操作集合的工具类
1234List<String> names = new ArrayList<>();Collections.addAll(names,"与马仔","我累哦二","array");//批量添加数据Collections.shuffle(names);//打乱List的里面数据,在斗地主中可以进 ...
javase
未读Java 集合 basic
集合是一种容器,类似与数组。集合的大小是可变的
Collection 单列集合
Map 双列集合
单列每个元素只会包含一个值
双列每个元素会包含两个值,或者称为键值对
Collection
List接口和Set接口
List系列是有序 可重复 有索引的
Set系列是无序的 不可重复的 无索引的
Hashset无序
LinkedHashSet有序的
TreeSet按照大小默认升序排序
常用方法
12345678910111213141516171819202122import java.util.ArrayList;import java.util.Collection;public class Test{ public static void main(String[] args) { Collection<String> c = new ArrayList<>();//多态 c.add("java");//添加 System.out.p ...
锁
概述
锁是计算机调解多个进程或者并发访问某一资源的机制
分类:
全局锁 锁住所有表
表级锁 锁住整张表
行级锁 锁住整个行的数据
全局锁
对整个数据库的实例进行加锁,整个实例处于只读状态
dml 和ddl语句都会阻塞
数据备份的时候会引发全局锁,从而获得一致性视图,来保证数据的完整性
加全局锁:
123flush tables with read lock;//开锁mysqldump -u -p itcast>itcast.sql;//备份unlock tables;//关锁
在主库上备份,在备份期间都不能更新
在从库上备份,在备份期间不能执行从主库同步过来的二进制日志,会有主从延迟
1mysqldump --single-transaction -uroot -p123 itcast > itcast.sql
这样就能在innnodb引擎上完成不加锁的一致性数据备份
表级锁
锁住整张表,锁定的颗粒大
分类—
表级锁
表共享读锁 可以读取不能写入
表独占写锁 其他的客户端不能写也不能读,但是当前客户端可以读也可以写
元数据锁
意向锁
表级:
加锁:
1lo ...
java 进阶
单元测试
针对最小的功能单元(方法)编写代码对其进行正确性测试
junit单元测试框架
灵活的编写测试代码,可以单个测试,也可以一键完成
还会生成测试报告
步骤:
为需要测试的业务类,定义编写对应的测试类。(公共无参数无返回值)
测试方法必须声明@Test注解
1234567891011121314package com.example.aaa;import org.junit.Test;import static org.junit.Assert.*;public class test1 { @Test public void testtest1() { // 这里是测试逻辑,例如断言 assertTrue(true); }}
例如
断言
最核心的,预测的一种机制
12assertEquals('方法内部有BUG', 4, 5);
assertEquals 是 JUnit 中的一个静态方法,用于验证两个值是否相等。
'方法内部有BUG' 是 ...
介绍
数据结构:计算机存储组织数据的方式,相互搭建一种或多种特定关系的数据元素的集合。在内存中将数据存储起来。
算法:定义良好的计算的过程
十分重要,要学扎实
时间复杂度
评估算法的好坏,评估他的空间和时间。分别是时间复杂度和空间复杂度
现在关注时间复杂度更多
时间复杂度是一个函数(数学中带有未知数的函数表达式),算法中基本操作的执行次数,为算法的时间复杂度
环境不同,执行的时间就会不同。
嵌套循环的时间复杂度
时间复杂度的函数式①:
F(N)=NN+2N+10
把上面的式子简化,只留影响最大的一项。**n越大,后两项对结果的影响就越小。**算个大概就行了
时间复杂度不需要精确的数值
用了O的渐进表示法,保留影响最大的就行了,就是一个大概的值
所以时间复杂度O(N^2)
O的渐进表示法:
如果有常数就用1去替代
只保留最高阶项
最高阶项存在但不是1,则去除与这个项目相乘的常数,得到就是大O阶
一般情况下时间复杂度计算时,未知数都是用的N,别的也是可以的
根据条件,可将O继续缩小
常数:
O(1)是指的能够运算常数次,不是仅仅代表算法只能运行一次
strchar
12345678wh ...
sql
未读Mysql 存储对象
视图
介绍
是一种虚拟存在的表,视图中的数据在数据库中不存在。行和列数据来自自定义视图查询使用的表,视图不保存数据,只是保存了sql的逻辑。
1create [or replace] view 视图名称{(列表名称)} as select语句 []
演示:
1create or replace view stu_v_1 as select id,name from student where id <= 10;
创建了一个视图
查询视图:
12show create view 视图名称select from 视图名称....是一个虚拟存在的表,可以像表一样进行操作。
修改视图:
12修改和创建视图的语法是一样的alter view 视图名称【(视图列表)】 as select语句;
删除视图:
1drop view [if exists] 视图名称 [视图名称];
视图操作和检查选项
在select语句后面加上with casecaded check option加上一个检查选项.就可以避免后来又插入了一些数据,,一些插入到数据不属于se ...
Sql优化
插入数据
批量插入:
1insert into tb_name values(1,'a'),(2,'b'),(3,'c');
不要超过1k条,多的进入sql语句查询
手动提交:
123456start transaction;insert into tb_name values(1,'a'),(2,'b'),(3,'c');insert into tb_name values(1,'a'),(2,'b'),(3,'c');insert into tb_name values(1,'a'),(2,'b'),(3,'c');insert into tb_name values(1,'a'),(2,'b'),(3,'c');commit;
所有的事务完成后,再提交数据
主键顺序插入:
...
java
未读java编程练习
基础题
1.leetcode 回文数
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
回文数
是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
例如,121 是回文,而 123 不是。
示例 1:
12输入:x = 121输出:true
示例 2:
123输入:x = -121输出:false解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
123输入:x = 10输出:false解释:从右向左读, 为 01 。因此它不是一个回文数。
提示:
-231 <= x <= 231 - 1
题解:
12345678910111213class Solution { public boolean isPalindrome(int x) { if(x<0) return false; int t = x; int y = 0; while(t>0){ ...