Math : max() min() ads() 复数也变成正数 pow(3,3) 求幂次方
round() 四舍五入 sqrt() 平方根
一元二次方程的解????
基本数据包装类
字符串 转数据类型
java 时间:
Date
Calender 是抽象类 直接点 即可
格式化时间
使用parse() 会飘红 这里 需加上 throws Exception 即可
计算时间差
字符串详解
concat 拼接
String s = "你好"
如果我们直接打印 s.concat("haha ") 那么展示的还是你好,, 需要用个变量接收
备注: 字符串是不可变的数据类型 几乎所有的字符串操作都会返回一个新的字符串
所以 一般 使用 +号 多谢
contains 判断
String s = "你好"
打印 s.contains("你") true 或者fales
平均分的练习:
StringBuilder 和 StringBuffer 区别:一个线程安全,一个不安全
跟字符串比起来 他是可变的 比如 append inseter ...对不同数据类型进行添加
小数点的保留
import java.text.DecimalFormat; public class Test02 { public static void main(String[] args) { // Car c1 = new Car(); // System.out.println(c1.color); double d =10/3.0; System.out.println(d); /* . 小数点 0和# 表示数字 */ DecimalFormat df =new DecimalFormat(".0"); String dff = df.format(d); // 要记得format 下 这时 打印 发现 就是 你保留小数的 字符数据了 double b =Double.parseDouble(dff); double a =2.8; System.out.println(a+b); } }
容器
list list 存的默认 是object 如果要使用get 取值的话 记得 alt + 回车 进行 string 的强转
contains 判断是否有这个元素
set HashSet TreeSet 都是不可重复 不过 TreeSet 是排序的 所以 一般使用hashset 比较多一点
Map
敏感词小练习
1:创建list 让用户输入 判断是否包含 如果包含 进行替换 替换的长度 根据提前拼接的字符!
迭代器
第一种方案
第二种方案 lterator
泛型
基本类型的一种规范
可以定义 字符串 int 或者是类 都是可以的!
增强for循环 代码简单 缺点 看不到索引
泛型 使用增加for
通配符:
一般使用通配符不多 ,但是至少要能看懂!
collections工具类
小练习
1: 把字符串转换成map
2: 把大于66放到一个list里 剩余的放到另一个list 里
文件操作
备注:创建文件夹 可以先判断下 文件是否存在 如果不存在 则在进行文件夹的创建
1: 读取文字信息
循环读取 字节
2: 写入文件数据 字节
字节流 尾部加true 代表 追加写
3: 字符读取
循环读取 大文件格式
4: 字符写入
如何选择 ? 一般文件 使用字符 如果是图片 视频之类的 使用字节
小练习: 写入图片
如果要删除源图片 只需要 最后面 加个delete 即可!
5: 缓冲流
读取文本 最好的方案
转换流
字节流 -> 字符流
InputstreamReader
OutputStreamWriter
Scanner sc =new Scanner(System.in) 有时候有些流是不可以关的 不然会导致程序直接停止运行了
对象流
文件修改操作
多线程
两种方式:
1: Therad 2:Runnable
setpriority() 设置优先级
1-10.5
sleep(毫秒) 睡眠(重点)
每隔xxx时间去执行一个xxx的
yield
让出CPU
join()
主线程等待子线程执行完毕之后再去执行!
interrupt(); 打断正在睡眠的子线程
线程同步
第二种用的比较多
第三种 怕操作时 忘记解锁
死锁
备注: 线程1需要执行资源1资源2才算执行完毕,但是呢 由于是同步线程,线程1在执行1资源,线程2在执行资源2 由于线程安全 这样 大家都在等着 之前被占用得资源....
生产者模型
1: 生产者模型 其实就是 A不用等B B 不用等A A 相当于生产者 把生产的东西放到一个存储里,然后由B再去拿 那么使用的方式有 比如阻塞性队列等..
知识点补充:
a++ ++a
比如 递增函数时, 递增 调用自身 一直循环
在递增函数里: 如果是不传递参数的情况下 ,比如 每次在函数里 又从头调用了下自己 这时a++ 其实一直都是最初传递的数字 但是++a 是 变量+1 =变量 然后把该变量进行传递 所以最后的效果应该是持续变化的!
内部类
枚举值
枚举值一般是程序员定义范围的,也可以通过构造方法传递一些数据,调用枚举值 其实就是相当于调用构造方法 !
一般经常跟switch 一块使用
线程池 几种使用关键字
标签:字符,java,字节,编程,list,网络,线程,使用,字符串 From: https://www.cnblogs.com/ZhiXiaoBbai/p/17046669.html