<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[WDWDWDGJW的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/WDWDWDGJW</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; WDWDWDGJW]]></copyright><item><title><![CDATA[StringBuffer类操作字符串的常用方法]]></title><link>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121450663</link><guid>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121450663</guid><author>WDWDWDGJW</author><pubDate>Fri, 03 Dec 2021 22:58:12 +0800</pubDate><description><![CDATA[代码演示


 * @Description//将一个数字字符串转换成逗号分隔的字符串，即从右边开始每三个数字用逗号分隔
 */
public class StringBufferDemo {
    public static void main(String[] args) {
        //通过String操作字符串的时候，比如追加、截取等等，操作的是字符串的一个副本，字符串本身内容没有修改
//        String s="hello";
//        s=s.concat("..]]></description><category></category></item><item><title><![CDATA[String类提取方法及其练习、字符串拆分]]></title><link>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121445378</link><guid>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121445378</guid><author>WDWDWDGJW</author><pubDate>Wed, 01 Dec 2021 08:58:32 +0800</pubDate><description><![CDATA[代码演示


 * @Description//字符串常用提取方法：
 */
public class StrMethods {
    public static void main(String[] args) {
//        //获取字符串中特定字符串的位置
//        String s="hello world!";
//        //indexOf:查找某个特定字符串在整个字符串中第一次出现的位置
//        //字符串下标从0开始
//        int ...]]></description><category></category></item><item><title><![CDATA[String类length()方法、equals()方法、其他比较方法及练习]]></title><link>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121442009</link><guid>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121442009</guid><author>WDWDWDGJW</author><pubDate>Tue, 30 Nov 2021 11:28:17 +0800</pubDate><description><![CDATA[String类提供了length()方法，确定字符串的长度

    返回字符串中的字符数




 * @Description//用户注册，密码长度不能小于6位
 * //字符串length()方法
 */
public class Register {
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        System.out.println("请输...]]></description><category></category></item><item><title><![CDATA[Math类、Random类]]></title><link>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121440738</link><guid>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121440738</guid><author>WDWDWDGJW</author><pubDate>Sun, 28 Nov 2021 09:47:50 +0800</pubDate><description><![CDATA[基本类型和包装类的自动转换

Integer intObject=5;

int intValue=intObject;

装箱：基本类型转换为包装类的对象

拆箱：包装类对象转换为基本类型的值
]]></description><category></category></item><item><title><![CDATA[包装类及其构造方法、常用方法、装箱和拆箱]]></title><link>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121438796</link><guid>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121438796</guid><author>WDWDWDGJW</author><pubDate>Fri, 26 Nov 2021 14:28:39 +0800</pubDate><description><![CDATA[包装类把基本数据类型转换为对象

  每个基本类型在Java.lang包中都有一个相应的包装类

包装类的作用

  提供了一系列实用的方法

  集合不允许存放基本数据类型数据，存放数字时，要用包装类

基本数据类型所对应的包装类




 * @Description//包装类及其构造方法
 */
public class Test {
    public static void main(String[] args) {
        //基本数据类型--&gt;包装类  特殊的：in...]]></description><category></category></item><item><title><![CDATA[枚举及其使用]]></title><link>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121438339</link><guid>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121438339</guid><author>WDWDWDGJW</author><pubDate>Thu, 25 Nov 2021 12:35:19 +0800</pubDate><description><![CDATA[枚举指由一组固定的常量组成的类型

通过enum定义枚举

使用枚举的好处：类型安全、易于输入、代码清晰

代码演示


//性别枚举类型
public enum Genders {
    男,女
}


 * @Description//学员
 */
public class Stu {
    public Genders sex;//性别


    public static void main(String[] args) {
        Stu stu=new Stu();
       ]]></description><category></category></item><item><title><![CDATA[Collections类及常用方法、Collections排序]]></title><link>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121436233</link><guid>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121436233</guid><author>WDWDWDGJW</author><pubDate>Wed, 24 Nov 2021 10:53:01 +0800</pubDate><description><![CDATA[方式一：遍历key,通过key--&gt;value

      方法一：通过迭代器Iterator实现遍历

      方法二：增强型for循环

方式二：遍历key-value对
]]></description><category></category></item><item><title><![CDATA[线程同步及练习]]></title><link>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121401916</link><guid>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121401916</guid><author>WDWDWDGJW</author><pubDate>Thu, 18 Nov 2021 19:28:16 +0800</pubDate><description><![CDATA[使用synchronized修饰的方法控制对类成员变量的访问

访问修饰符synchronized 返回类型 方法名(参数列表）{......}

或者synchronized访问修饰符 返回类型 方法名(参数列表){......}

synchronized就是为当前的线程声明一把锁

代码演示如下：


 * @Description模拟用户网络购票--使用同步方法解决线程带来的数据不安全问题
 */
public class TicketThread implements Runnable{
  ..]]></description><category></category></item><item><title><![CDATA[多线程共享数据引发的问题]]></title><link>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121401109</link><guid>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121401109</guid><author>WDWDWDGJW</author><pubDate>Thu, 18 Nov 2021 15:21:22 +0800</pubDate><description><![CDATA[* @Description模拟用户网络购票
 */
public class TicketThread implements Runnable{
    private int ticket=10;//记录车票总数
    private int num=0;//记录用户抢到了几张票
    //用户抢票
    public void run(){
        while (true){
            //没有余票，跳出循环
            if (ticket&lt;=0...]]></description><category></category></item><item><title><![CDATA[线程调度练习]]></title><link>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121380794</link><guid>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121380794</guid><author>WDWDWDGJW</author><pubDate>Thu, 18 Nov 2021 14:59:18 +0800</pubDate><description><![CDATA[* @Description模拟一个人爬山
 */
public class ClimbThread extends Thread{
    //爬100米的时长(休眠的时长)
    private long time;
    //爬多少个100米
    private int num;
    //name:年轻人/老年人  time：爬100米的时长  kilometers山的高度(千米)
    public ClimbThread(String name,int time,int...]]></description><category></category></item><item><title><![CDATA[线程调度join()和 yield()]]></title><link>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121385405</link><guid>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121385405</guid><author>WDWDWDGJW</author><pubDate>Wed, 17 Nov 2021 19:25:48 +0800</pubDate><description><![CDATA[join():

   等待该线程终止

   等待加入的其他线程结束后再继续执行本线程

代码演示


public class MyThread5 implements Runnable{
    public void run(){
        for (int i = 0; i &lt;= 30; i++) {
            System.out.println(Thread.currentThread().getName()+":"+i);
        }
    }...]]></description><category></category></item><item><title><![CDATA[线程调度---优先级和休眠]]></title><link>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121378928</link><guid>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121378928</guid><author>WDWDWDGJW</author><pubDate>Wed, 17 Nov 2021 18:52:07 +0800</pubDate><description><![CDATA[定义MyRunnable类实现Runnable接口

实现run()方法，编写线程执行体

创建线程对象，调用start()方法启动线程

 Thread(Runnable target)

 Thread(Runnabletarget,String name)


]]></description><category></category></item><item><title><![CDATA[线程的状态]]></title><link>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121380092</link><guid>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121380092</guid><author>WDWDWDGJW</author><pubDate>Wed, 17 Nov 2021 16:02:03 +0800</pubDate><description><![CDATA[线程的状态：

   创建、就绪、运行、阻塞、死亡

我们通过代码来模拟一下


public class MyThread3 implements Runnable{
    public void run(){
        System.out.println("线程正在运行，处于运行状态");
        try {
            //线程休眠5s
            System.out.println("线程开始休眠，处于阻塞状态");
            T...]]></description><category></category></item><item><title><![CDATA[线程创建的两种方式的区别]]></title><link>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121379078</link><guid>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121379078</guid><author>WDWDWDGJW</author><pubDate>Wed, 17 Nov 2021 15:37:05 +0800</pubDate><description><![CDATA[创建线程的两种方式:

继承Thread类:

   编写简单，可直接做线程

   适用于单继承

实现Runnable接口：

   避免单继承局限性

   便于共享资源

通过代码感受为何说Runnable接口便于共享资源（模拟现实生活中的抢票过程）

如果用继承Thread类：


 * @Description//创建线程模拟抢票过程
 */
public class MyThread1 extends Thread {
    private int ticket=10...]]></description><category></category></item><item><title><![CDATA[多线程---进程和线程、线程初体验、继承Thread创建线程、实现Runnable创建线程]]></title><link>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121376504</link><guid>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121376504</guid><author>WDWDWDGJW</author><pubDate>Wed, 17 Nov 2021 14:57:00 +0800</pubDate><description><![CDATA[进程：

应用程序的执行实例

有独立的内存空间和系统资源

线程：

CPU调度和分派的基本单位

执行运算的最小单位，可完成一个独立的控制流程

多线程：

如果在一个进程中同时运行了多个线程，用来完成不同的工作，则称之为"多线程”

多个线程交替占用CPU资源，而非真正的并行执行

多线程好处：

充分利用CPU的资源，提高代码性能

简化编辑模型，更好的软件设计和架构

带来良好的用户体验

主线程：

main()方法即为主线程入口

产生其他子线程的线程

必须最后完成执行，因为它执行各种关闭.]]></description><category></category></item><item><title><![CDATA[序列化和反序列化]]></title><link>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121363952</link><guid>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121363952</guid><author>WDWDWDGJW</author><pubDate>Tue, 16 Nov 2021 20:22:13 +0800</pubDate><description><![CDATA[序列化是将对象的状态写入到特定的流中的过程

反序列化则是从特定的流中获取数据重新构建对象的过程

对象输出流ObjectOutputStream

  结合FileOutputStream使用，实现对象的序列化

  writerObject(Object)

对象输入流ObjectInputStream

结合FileInputStream使用，实现对象的反序列化

  Object readObject()

对象类型必须实现Serializable接口

创建学员类型


pu...]]></description><category></category></item><item><title><![CDATA[读写二进制文件]]></title><link>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121363514</link><guid>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121363514</guid><author>WDWDWDGJW</author><pubDate>Tue, 16 Nov 2021 19:59:51 +0800</pubDate><description><![CDATA[DataInputStream

  FileInputStream的子类

  与FileInputStream类结合使用读取二进制文件

DataOutputStream

  FileOutputStream的子类

  与FileOutputStream类结合使用写二进制文件






public class CopyPic {
    public static void main(String[] args) {
        //读取图片d:/coder.jpg...]]></description><category></category></item><item><title><![CDATA[字符输入输出流综合练习]]></title><link>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121362394</link><guid>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121362394</guid><author>WDWDWDGJW</author><pubDate>Tue, 16 Nov 2021 19:34:23 +0800</pubDate><description><![CDATA[Writer类常用方法

  write(String str)

  write(String str,int off, int len）

  void close()

  void flush()

FileWriter类是Writer的孙子类

  FileWriter(File file)

  FileWriter(String name)

  带boolean类型的参数构造方法


 * @Description借助字符输出流Write...]]></description><category></category></item><item><title><![CDATA[字符流BufferedWriter类]]></title><link>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121362598</link><guid>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121362598</guid><author>WDWDWDGJW</author><pubDate>Tue, 16 Nov 2021 19:05:38 +0800</pubDate><description><![CDATA[BufferedWriter类是Writer的子类

BufferedWriter类带有缓冲区

BufferedWriter常用的构造方法

　　BufferedWriter(Writer out)


public class BufferedWriterDemo {
    public static void main(String[] args) {
            Writer fw=null;
            FileOutputStream fos=null;
      .]]></description><category></category></item><item><title><![CDATA[字符输出流Writer及解决中文乱码问题]]></title><link>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121362184</link><guid>https://blog.youkuaiyun.com/WDWDWDGJW/article/details/121362184</guid><author>WDWDWDGJW</author><pubDate>Tue, 16 Nov 2021 18:54:21 +0800</pubDate><description><![CDATA[Writer类常用方法

  write(String str)

  write(String str,int off, int len）

  void close()

  void flush()

FileWriter类是Writer的孙子类

  FileWriter(File file)

  FileWriter(String name)

  带boolean类型的参数构造方法


 * @Description借助字符输出流Write...]]></description><category></category></item></channel></rss>