<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[java_gml的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/java_gml</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; java_gml]]></copyright><item><title><![CDATA[idea打war包路径问题]]></title><link>https://blog.youkuaiyun.com/java_gml/article/details/130421964</link><guid>https://blog.youkuaiyun.com/java_gml/article/details/130421964</guid><author>java_gml</author><pubDate>Fri, 28 Apr 2023 10:55:56 +0800</pubDate><description><![CDATA[路径改为自己的项目名称，就比如我的是hospital_war.war。在Tomcat9下的conf中文件下。点击server中进行改动。]]></description><category></category></item><item><title><![CDATA[Java线程的生命周期]]></title><link>https://blog.youkuaiyun.com/java_gml/article/details/124164410</link><guid>https://blog.youkuaiyun.com/java_gml/article/details/124164410</guid><author>java_gml</author><pubDate>Thu, 14 Apr 2022 10:05:16 +0800</pubDate><description><![CDATA[线程的状态
▪ 新生状态
– 用new关键字建立一个线程后，该线程对象就处亍新生状态。
– 处亍新生状态的线程有自己的内存空间，通过调用start()方法迚入就绪状态。
▪ 就绪状态
– 处亍就绪状态线程具备了运行条件，但还没分配到CPU，处亍线程就绪队列，等待系统为其分
配CPU。
– 当系统选定一个等待执行的线程后，它就会从就绪状态迚入执行状态，该动作称为“CPU调
度”。
▪ 运行状态
– 在运行状态的线程执行自己的run方法中代码,直到等待某资源而阻塞戒完成任何而死亡。
– 如果在给定的时间片内没有]]></description><category></category></item><item><title><![CDATA[java中的InputStream，OutputStream，Read，Writer]]></title><link>https://blog.youkuaiyun.com/java_gml/article/details/124008167</link><guid>https://blog.youkuaiyun.com/java_gml/article/details/124008167</guid><author>java_gml</author><pubDate>Thu, 07 Apr 2022 10:40:59 +0800</pubDate><description><![CDATA[Java 中定义了两种类型的流：字节型，和字符型。

字节流：处理字节的输入和输出。包括读写二进制数据等方面的内容。

字符流：处理字符的输入和输出。他采用的是 Unicode 编码，可以实现国际化。使用字符流的另外一个好处就是：字符流比字节流更有效率。

字节流：

字节流包含两个顶层抽象类：InputStream和OutputStream。

1 ：字节流的两个顶层类是抽象类，分别是：InputStream和OutputStream。

2 ：每个抽象类都有子类来实现具体的功能，处理...]]></description><category></category></item><item><title><![CDATA[HashMap，HashTable，HashSet的区别，List，Map的区别，ArrayList，LinkedListvector的区别，Overload，Override的区别]]></title><link>https://blog.youkuaiyun.com/java_gml/article/details/123992319</link><guid>https://blog.youkuaiyun.com/java_gml/article/details/123992319</guid><author>java_gml</author><pubDate>Wed, 06 Apr 2022 16:06:32 +0800</pubDate><description><![CDATA[HashMap和HashTable的比较：







HashMap和HashSet的比较：

看HashSet源码可发现，HashSet底层是基于HashMap实现的，除去clone()方法、writeObject()方法、readObjcet()方法是自己实现之外，其余方法都是直接调用HashMap里的方法。



list与map的区别:

List：是存储单列数据的集合，存储的数据是有序并且是可以重复的
Map：存储双列数据的集合，通过键值对存储数据，存储 的数据是无序的，Key值不能重复，..]]></description><category></category></item><item><title><![CDATA[Java--序列化与反序列化]]></title><link>https://blog.youkuaiyun.com/java_gml/article/details/123991888</link><guid>https://blog.youkuaiyun.com/java_gml/article/details/123991888</guid><author>java_gml</author><pubDate>Wed, 06 Apr 2022 15:45:43 +0800</pubDate><description><![CDATA[序列化

序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间，对象将其当前状态写入到临时或持久性存储区。以后，可以通过从存储区中读取或反序列化对象的状态，重新创建该对象。

序列化使其他代码可以查看或修改，那些不序列化便无法访问的对象实例数据。确切地说，代码执行序列化需要特殊的权限:即指定了 SerializationFormatter 标志的 SecurityPermission。在默认策略下，通过 Internet 下载的代码或 Internet ..]]></description><category></category></item><item><title><![CDATA[Java--IO流]]></title><link>https://blog.youkuaiyun.com/java_gml/article/details/123989560</link><guid>https://blog.youkuaiyun.com/java_gml/article/details/123989560</guid><author>java_gml</author><pubDate>Wed, 06 Apr 2022 14:39:09 +0800</pubDate><description><![CDATA[WritreDemo的使用:

package com.tensent.readerAndwriter;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;

public class WriterDemo {
    public static void main(String[] args) {
        File file = new File(..]]></description><category></category></item><item><title><![CDATA[Java--IO流]]></title><link>https://blog.youkuaiyun.com/java_gml/article/details/123989455</link><guid>https://blog.youkuaiyun.com/java_gml/article/details/123989455</guid><author>java_gml</author><pubDate>Wed, 06 Apr 2022 14:33:08 +0800</pubDate><description><![CDATA[代码如下：

package com.tensent.filedemo;

import java.io.File;
import java.io.IOException;

public class FileDemo {
    public static void main(String[] args) {
        //创建一个文件
        File file = new File("c.txt");
        System.out.println(file.getParen...]]></description><category></category></item><item><title><![CDATA[java常用类]]></title><link>https://blog.youkuaiyun.com/java_gml/article/details/123927404</link><guid>https://blog.youkuaiyun.com/java_gml/article/details/123927404</guid><author>java_gml</author><pubDate>Sat, 02 Apr 2022 19:43:09 +0800</pubDate><description><![CDATA[String类部分如下，其他见api





package String类;

import java.util.Collection;


public class StringBufferDemo {
    public static void main(String[] args) {
        StringBuffer stringBuffer = new StringBuffer("abc");
        stringBuffer.append(123).append("bcd.]]></description><category></category></item><item><title><![CDATA[关于return的面试题]]></title><link>https://blog.youkuaiyun.com/java_gml/article/details/123497383</link><guid>https://blog.youkuaiyun.com/java_gml/article/details/123497383</guid><author>java_gml</author><pubDate>Tue, 15 Mar 2022 11:13:07 +0800</pubDate><description><![CDATA[try语句在返回前，将其他所有的操作执行完，保留好要返回的值，而后转入执行finally中的语句，而后分为以下三种情况：

一：如果finally中有return语句，则会将try中的return语句覆盖掉，直接执行finally中的return语句，得到返回值，这样便无法得到try之前保留好的返回值

二：如果finally中没有return语句，也没有改变返回值，则执行完finally中的语句后，会接着执行try中的return语句，返回之前保留的值

三：如果finally中没有return语句，但是]]></description><category></category></item><item><title><![CDATA[throw和throws的区别]]></title><link>https://blog.youkuaiyun.com/java_gml/article/details/123496940</link><guid>https://blog.youkuaiyun.com/java_gml/article/details/123496940</guid><author>java_gml</author><pubDate>Tue, 15 Mar 2022 10:55:38 +0800</pubDate><description><![CDATA[1.位置不同

throw：写在方法内部

throws：方法的签名处，方法的声明处

2.内容不同

throw+异常对象（检查异常，运行时异常）

throws+异常的类型（可以多个类型，用逗号拼接）

3.作用不同

throw：异常出现的源头，制造异常

throws：在方法的声明处，告诉方法的调用者，这个方法中可能会出现我声明的这些异常，然后调用者对这个异常进行处理，要么自己处理，要么在继续向外抛出异常
...]]></description><category></category></item><item><title><![CDATA[异常：多重catch处理异常]]></title><link>https://blog.youkuaiyun.com/java_gml/article/details/123496373</link><guid>https://blog.youkuaiyun.com/java_gml/article/details/123496373</guid><author>java_gml</author><pubDate>Tue, 15 Mar 2022 10:45:57 +0800</pubDate><description><![CDATA[多重catch处理异常例子：

try{
  System.out.print("请输入第一个整数：");
  int one = input.nextInt();
  System.out.print("请输入第二个整数：");
  int two = input.nextInt();
  System.out.println("one和two的商为："+ (one/two));
}catch(ArithmeticException e){
  System.out.print...]]></description><category></category></item><item><title><![CDATA[异常：try-catch处理异常]]></title><link>https://blog.youkuaiyun.com/java_gml/article/details/123494723</link><guid>https://blog.youkuaiyun.com/java_gml/article/details/123494723</guid><author>java_gml</author><pubDate>Tue, 15 Mar 2022 10:32:57 +0800</pubDate><description><![CDATA[Exception：在程序的运行过程中，发生了不正常的现象，阻止了程序的运行，我们称之为发生异常

用if-else堵漏洞的缺点（基本不会用if-else来处理异常）

（1）代码臃肿，业务代码和处理异常的代码混在一起

（2）可读性差

（3）程序员需要花费大量的精力来维护这个漏洞

（4）程序员很难堵住所有漏洞（异常）



一：基于if-else处理异常缺点太多，所以Java中专门出了一个异常处理机制：“异常三连”try-catch-finally



二：异常怎么看：

第一行：提示异常的类型

]]></description><category></category></item><item><title><![CDATA[面向对象--接口]]></title><link>https://blog.youkuaiyun.com/java_gml/article/details/123384186</link><guid>https://blog.youkuaiyun.com/java_gml/article/details/123384186</guid><author>java_gml</author><pubDate>Wed, 09 Mar 2022 19:04:31 +0800</pubDate><description><![CDATA[1.类是类，接口是接口，他们是同一层次的概念。

2.接口没有构造器。

3.在jdk1.8之前，接口只有两部分内容：

（1）常量：固定修饰符public static final

（2）抽象方法：固定修饰符public abstract

注意：修饰符可以不写，IDEA会帮你自动补全。

4.类和接口的关系是实现关系，类实现接口。

6.一旦实现一个接口，那么实现类要重写接口中全部的抽象方法。

7.如果没有全部重写抽象方法，那么这个类可以变成一个抽象类。

8.Java只有单继承，Java还有多实现]]></description><category></category></item><item><title><![CDATA[java中的访问权限修饰符]]></title><link>https://blog.youkuaiyun.com/java_gml/article/details/123374437</link><guid>https://blog.youkuaiyun.com/java_gml/article/details/123374437</guid><author>java_gml</author><pubDate>Wed, 09 Mar 2022 12:33:40 +0800</pubDate><description><![CDATA[在Java中明确定义了访问权限

限制访问，以下分类按照从大到小进行排列。

public：公共的

当前项目的所有类都可以进行访问。

protected：受保护的

可以被当前类访问，可以被当前包访问，也可以被子类访问。

default：默认权限（缺省的，不用写单词）

可以被当前类访问，可以被当前包访问。

private：私有权限

只能被当前类访问。

注意：四种访问修饰符可以修饰属性和方法。

类的访问修饰符只有两个public，default
...]]></description><category></category></item><item><title><![CDATA[面向对象——get，set方法]]></title><link>https://blog.youkuaiyun.com/java_gml/article/details/122469144</link><guid>https://blog.youkuaiyun.com/java_gml/article/details/122469144</guid><author>java_gml</author><pubDate>Thu, 13 Jan 2022 10:50:26 +0800</pubDate><description><![CDATA[使用快捷键ALT+insert可以快捷的调出所有的get，set方法

package com.gml;
public class Demo {
    private String name = "牛马顺";
    private int age = 18;
    private int height = 175;
    private double weight = 130.5;

    public Demo() {

    }

    public Demo(String name, .]]></description><category></category></item><item><title><![CDATA[面向对象练习]]></title><link>https://blog.youkuaiyun.com/java_gml/article/details/122400293</link><guid>https://blog.youkuaiyun.com/java_gml/article/details/122400293</guid><author>java_gml</author><pubDate>Mon, 10 Jan 2022 14:16:11 +0800</pubDate><description><![CDATA[package Zuoye;
public class Demo {

  private String name;
  private int age; //私有属性，只能在当前类中调用
  private int weight;

  public Demo(){

  }

  public Demo(String name,int age,int weight){
    this.name = name;
    this.age = age;
  ...]]></description><category></category></item><item><title><![CDATA[面向对象——Package]]></title><link>https://blog.youkuaiyun.com/java_gml/article/details/122408174</link><guid>https://blog.youkuaiyun.com/java_gml/article/details/122408174</guid><author>java_gml</author><pubDate>Mon, 10 Jan 2022 13:21:31 +0800</pubDate><description><![CDATA[使用Package是为了解决类之间的重名问题；为了便于管理类，合适的类位于合适的包
Package怎么用：1：通常是类的第一句非注释性语句。2:域名倒着写即可，再加上模块名，并不内部管理
Package包名定义：
   【1】：名字全部小写，中间用.隔开
   【2】；一般都是公司域名倒着写
     比如：www.baidu.com
     包名：com.baidu.
   【3】：包名的命名规则：
          ...]]></description><category></category></item><item><title><![CDATA[面向对象——代码块]]></title><link>https://blog.youkuaiyun.com/java_gml/article/details/122407731</link><guid>https://blog.youkuaiyun.com/java_gml/article/details/122407731</guid><author>java_gml</author><pubDate>Mon, 10 Jan 2022 12:19:24 +0800</pubDate><description><![CDATA[代码块：用{}的括起来的就叫代码块
代码块的分类：
1、普通块：定义在方法中用{}括起来的就是普通代码块
2、构造块：定义在类中的用{}括起来的就是构造代码块
   构造块中的代码，会被加载到每一个构造器（构造方法前面）
   特殊情况除外，比如使用this（参数）；调用有参的构造方法，因为这一句必须放在首行
   所以就不会在将构造块的代码加载到首行，简单来说冲突了
3、静态块：加上static使用{}括起来的就是静态块，优先级最高
4、同步块（在使用多线程的时候会使用，用来给...]]></description><category></category></item><item><title><![CDATA[面向对象之调狗用法]]></title><link>https://blog.youkuaiyun.com/java_gml/article/details/122400226</link><guid>https://blog.youkuaiyun.com/java_gml/article/details/122400226</guid><author>java_gml</author><pubDate>Sun, 09 Jan 2022 21:55:36 +0800</pubDate><description><![CDATA[package com.gml;

import javax.swing.*;

public class Dog {
    //属性
    private String name = "阿顺";//昵称
    private int health = 100;//健康值
    private int love = 100;//亲密度
    private String strain = "牛马犬";//品种

    public String getName(){
        retur.]]></description><category></category></item><item><title><![CDATA[面向对象——static关键字]]></title><link>https://blog.youkuaiyun.com/java_gml/article/details/122386873</link><guid>https://blog.youkuaiyun.com/java_gml/article/details/122386873</guid><author>java_gml</author><pubDate>Sat, 08 Jan 2022 21:56:29 +0800</pubDate><description><![CDATA[static：修饰成员变量时，表示静态成员变量或叫类变量
普通变量在使用的时候，必须要通过对象名进行调用
类变量或者静态变量可以使用对象名调用也可以使用类名进行调用
修饰方法的时候，表示静态方法或者叫类方法
普通方法在使用时，必须要通过对象名进行调用
类方法或者静态方法可以使用类名，也可以使用对象名
注意：
1.静态变量，在创建对象之前被初始化，或者说在类被载入之前进行初始化
2.静态变量被所有的对象共享，属于公共变量，对象和类都可以...]]></description><category></category></item></channel></rss>