java 3 核心编程&网络编程

 

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 一块使用

 

 

 线程池  几种使用关键字

 

posted @ 2023-02-09 09:18  小林子哈哈  阅读(20)  评论(0编辑  收藏  举报