Java xml和json互相转换方法

简介: Java xml和json互相转换方法

1 java xml转为json的方法

1.1 fastjson和jdom2进行转化

<?xml version="1.0" encoding="utf-8" ?>
<auibinsurancecallback>
    <policyinfo>
        <transtype>TKTS</transtype>
        <eticketno>xxx</eticketno>
        <flightnumber>xxx</flightnumber>
        <flightdate>2019-10-16</flightdate>
        <operatetime>2019-10-16 17:20:00</operatetime>
        <insureno>1910161720056066735</insureno>
        <agreeno>102160199</agreeno>
        <policyno>
        </policyno>
        <policyurl>
            <!--[CDATA[]]-->
        </policyurl>
    </policyinfo>
    <returninfo>
        <serialnumber>2019103015284949545354
        </serialnumber>
        <retruncode>0</retruncode>
        <errormessage>
            <!--[CDATA[xxx]]-->
        </errormessage>
    </returninfo>
</auibinsurancecallback>";
public static JSONObject xml2JSON(byte[] xml) throws JDOMException, IOException {
        JSONObject json = new JSONObject();
        InputStream is = new ByteArrayInputStream(xml);
        SAXBuilder sb = new SAXBuilder();
        org.jdom2.Document doc = sb.build(is);
        Element root = doc.getRootElement();
        json.put(root.getName(), iterateElement(root));
        return json;
    }
    private static JSONObject iterateElement(Element element) {
        List node = element.getChildren();
        Element et = null;
        JSONObject obj = new JSONObject();
        List list = null;
        for (int i = 0; i < node.size(); i++) {
            list = new LinkedList();
            et = (Element) node.get(i);
            if (et.getTextTrim().equals("")) {
                if (et.getChildren().size() == 0)
                    continue;
                if (obj.containsKey(et.getName())) {
                    list = (List) obj.get(et.getName());
                }
                list.add(iterateElement(et));
                obj.put(et.getName(), list);
            } else {
                if (obj.containsKey(et.getName())) {
                    list = (List) obj.get(et.getName());
                }
                list.add(et.getTextTrim());
                obj.put(et.getName(), list);
            }
        }
        return obj;
    }
 @Test
    public void xml1(){
        String  xml = 上面贴的xml;
        JSONObject json= null;
        try {
            json = xml2JSON(xml.getBytes());
            System.out.println(json.toJSONString());
        } catch (JDOMException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

实现效果:

{
  "auibinsurancecallback": {
    "returninfo": [
      {
        "retruncode": [
          "0"
        ],
        "serialnumber": [
          "2019103015284949545354"
        ]
      }
    ],
    "policyinfo": [
      {
        "operatetime": [
          "2019-10-16 17:20:00"
        ],
        "transtype": [
          "TKTS"
        ],
        "flightdate": [
          "2019-10-16"
        ],
        "insureno": [
          "1910161720056066735"
        ],
        "flightnumber": [
          "xxx"
        ],
        "agreeno": [
          "102160199"
        ],
        "eticketno": [
          "xxxx"
        ]
      }
    ]
  }
}

比较丑全是list的样子,也能用

1.2 用的org.json包

在用org.json包的时候,需要把spring-boot-starter-test中的,android-json排除,要不然会报错:

java.lang.NoSuchMethodError: org.json.JSONTokener.(Ljava/io/Reader;)V

java.lang.NoSuchMethodError: org.json.JSONObject.put(Ljava/lang/String;Ljava/util/Collection;)

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>com.vaadin.external.google</groupId>
                    <artifactId>android-json</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

实现方法简单:

org.json.JSONObject xmlJSONObj = null;
       try {
           xmlJSONObj = XML.toJSONObject(xml);
           log.debug("json:" + xmlJSONObj.toString() );
       } catch (JSONException e) {
           e.printStackTrace();
       }

实现效果:

{
  "auibinsurancecallback": {
    "returninfo": {
      "errormessage": "",
      "retruncode": 0,
      "serialnumber": 2.0191030152849496e+21
    },
    "policyinfo": {
      "policyurl": "",
      "operatetime": "2019-10-16 17:20:00",
      "transtype": "TKTS",
      "flightdate": "2019-10-16",
      "insureno": 1910161720056066800,
      "flightnumber": "xxx",
      "agreeno": 102160199,
      "policyno": "",
      "eticketno": xxx
    }
  }
}

2 java json格式转xml格式

2.1 使用 jdom 进行转换

描述:

xml转json org.jdom

用 dom 提取节点 转成map

json 转 xml com.alibaba.fastjson.JSONObject

2 java json格式转xml格式

2.1 使用 jdom 进行转换

描述:

xml转json org.jdom

用 dom 提取节点 转成map

json 转 xml com.alibaba.fastjson.JSONObject

    <!-- https://mvnrepository.com/artifact/org.jdom/jdom -->
    <dependency>
        <groupId>org.jdom</groupId>
        <artifactId>jdom</artifactId>
        <version>1.1.3</version>
    </dependency>
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.StringReader;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.xml.sax.InputSource;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
public class JsonToXml {
        public static void main(String[] args) throws Exception {
            //请注意使用正常的xml
            //xml->json
//            String jsonStr = xmlToJson("D:\\NewFile.xml", null);
//            System.out.println(jsonStr);
            //json->xml
          String xmlstr = jsonToXml("{\"b_content\":{\"sdata\":\"Ps/DPJnZZPN6QQJQodY3+hK6PWCF3/2oi3DJPnFEXgKDrXX5rHT7q/I0nQPAruuBbQRfErnenQNvPpbf/lXl690qtye0/ZEuDs0ByFdFAGffQalB+Ij3lLUMDPz=\",\"userobj\":{\"uid\":\"ma000\",\"realtype\":\"DC\",\"cn\":\"法人用户2\",\"tokenid\":\"\",\"usertype\":\"2\",\"link_person_name\":\"联系人2\",\"isreal\":\"true\",\"telephonenumber\":\"13*******21\",\"mail\":\"ceshi@123.com\",\"idcardtype\":\"10\",\"createtime\":\"20150618191221\",\"extproperties\":[\"address=广东省广州市天河区天河北路XXX号\",\"legal_code=440***********033\",\"ent_type=-1\",\"link_person_code=350************14\",\"origin=gdbs\",\"card_type_two_num=-1\",\"cert_ca=-1\",\"accout_type=2\",\"account_uid=2\",\"comm_code=-1\",\"unit_type=-1\",\"legal_id_type=10\",\"landline=-1\",\"tax_code=-1\",\"cert_notafter=-1\",\"card_type_one_num=-1\",\"local_user=-1\",\"legal_person=郑**\",\"link_person_type=10\",\"card_type_three=-1\",\"card_type_two=-1\",\"card_type_three_num=-1\",\"cert_data=-1\",\"area=guangzhou\",\"uversion=3.0\",\"cert_notbefore=-1\",\"card_type_one=-1\",\"user_typeext=2\"],\"idcardnumber\":\"11***************23\",\"useridcode\":\"38c97fa1ee2e43d4a664cffc4554cde4\",\"creditable_level_of_account_way\":\"L2@YSS@2088******653||L0@IDV@44088******75||L3@GW@44088******75\",\"creditable_level_of_account\":\"L3\"},\"pareobj\":{\"uid\":\"mayintao\",\"realtype\":\"DC\",\"cn\":\"单位用户2\",\"tokenid\":\"\",\"usertype\":\"2\",\"link_person_name\":\"联系人2\",\"isreal\":\"true\",\"telephonenumber\":\"13*******21\",\"mail\":\"ceshi@123.com\",\"idcardtype\":\"50\",\"createtime\":\"20150618191221\",\"extproperties\":[\"address=广东省广州市东山区\",\"legal_id_type=-1\",\"link_person_type=-1\",\"legal_code=-1\",\"origin=gdbs\",\"tax_code=-1\",\"legal_person=-1\",\"area=shenzhen\",\"link_person_code=-1\",\"user_typeext=2\",\"uversion=1.0\"],\"idcardnumber\":\"456787654\",\"useridcode\":\"75c91fagrr2e67d4a169cfmc8735ctrf\",\"creditable_level_of_account_way\":\"L2@YSS@2088******653||L0@IDV@44088******75||L3@GW@44088******75\",\"creditable_level_of_account\":\"L3\"},\"user_creditable_level\":{\"creditable_level_of_account_way\":\"L2@YSS@2088******653||L0@IDV@44088******75||L3@GW@44088******75\",\"creditable_level_of_account_way_list\":[{\"auth_time\":\"2018-02-28 16:45:26\",\"uniqueid\":\"***86f93fb61***\",\"user_name\":\"郭**\",\"auth_identification\":\"2088******653\",\"identity_level\":\"L2\",\"credential_no\":\"44088******75\",\"way_code\":\"YSS\"},{\"auth_time\":null,\"uniqueid\":\"***764486f93fb61212***\",\"user_name\":\"郭**\",\"auth_identification\":\"44088******75\",\"identity_level\":\"L0\",\"credential_no\":\"44088******75\",\"way_code\":\"IDV\"},{\"auth_time\":\"2018-02-13 17:12:31\",\"uniqueid\":\"*****764486f93fb612122*****\",\"user_name\":\"郭**\",\"auth_identification\":\"44088******75\",\"identity_level\":\"L3\",\"credential_no\":\"44088******75\",\"way_code\":\"GW\"}],\"creditable_level_of_account\":\"L3\"}},\"time_stamp\":\"20200821\",\"version \":\"v1\",\"sign\":\"rxf0MFT7eQqYgYKWtgzNBi6mhS2tbqkPgI \"}");
          System.out.println(xmlstr);
          createXMLFile(formatXML(xmlstr), "测试");
        }
        /**
         * xml转json字符串 注意:路径和字符串二传一另外一个传null<br>
         * 方 法 名:xmlToJson <br>
         * @param xmlPath xml路径(和字符串二传一,两样都传优先使用路径)
         * @param xmlStr xml字符串(和路径二传一,两样都传优先使用路径)
         * @return String
         * @throws IOException 
         * @throws JDOMException 
         */
        @SuppressWarnings("unchecked")
        public static String xmlToJson(String xmlPath,String xmlStr){
            SAXBuilder sbder = new SAXBuilder();
            Map<String, Object> map = new HashMap<String, Object>();
            Document document;
            try {
                if(xmlPath!=null){
                    //路径
                    document = sbder.build(new File(xmlPath));
                }else if(xmlStr!=null){
                    //xml字符
                    StringReader reader = new StringReader(xmlStr);
                    InputSource ins = new InputSource(reader);
                    document = sbder.build(ins);
                }else{
                    return "{}";
                }
                //获取根节点
                Element el =  document.getRootElement();
                List<Element> eList =  el.getChildren();
                Map<String, Object> rootMap = new HashMap<String, Object>();
                //得到递归组装的map
                rootMap = xmlToMap(eList,rootMap);
                map.put(el.getName(), rootMap);
                //将map转换为json 返回
                return JSON.toJSONString(map);
            } catch (Exception e) {
                return "{}";
            }
        }
        /**
         * json转xml<br>
         * 方 法 名:jsonToXml <br>
         * @param json
         * @return String
         */
        public static String jsonToXml(String json){
            try {
                StringBuffer buffer = new StringBuffer();
                buffer.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
                buffer.append("<base>");
                JSONObject jObj = JSON.parseObject(json);
                jsonToXmlstr(jObj,buffer);
                buffer.append("</base>");
                return buffer.toString();
            } catch (Exception e) {
                e.printStackTrace();
                return "";
            }
        }
        /**
         * json转str<br>
         * 方 法 名:jsonToXmlstr <br>
         * @param jObj
         * @param buffer
         * @return String
         */
        public static String jsonToXmlstr(JSONObject jObj,StringBuffer buffer ){
            Set<Entry<String, Object>>  se = jObj.entrySet();
            for( Iterator<Entry<String, Object>>   it = se.iterator();  it.hasNext(); )
          {             
              Entry<String, Object> en = it.next();
              if(en.getValue() != null && en.getValue().getClass().getName().equals("com.alibaba.fastjson.JSONObject")){
                  buffer.append("<"+en.getKey()+">");
                      JSONObject jo = jObj.getJSONObject(en.getKey());
                      jsonToXmlstr(jo,buffer);
                  buffer.append("</"+en.getKey()+">");
              }else if(en.getValue() != null && en.getValue().getClass().getName().equals("com.alibaba.fastjson.JSONArray")){
                  if (en.getKey().equals("extproperties")) {
                      JSONArray ja = jObj.getJSONArray(en.getKey());
                      Iterator<Object> it1 = ja.iterator();
                      List<String> list=new ArrayList<String>();
                      while (it1.hasNext()) {
                          String ob = (String) it1.next();            
                          System.out.println(ob);          
                      }
                }else {
                    JSONArray jarray = jObj.getJSONArray(en.getKey());
                    for (int i = 0; i < jarray.size(); i++) {
                        buffer.append("<"+en.getKey()+">");
                            JSONObject jsonobject =  jarray.getJSONObject(i);
                            jsonToXmlstr(jsonobject,buffer);
                        buffer.append("</"+en.getKey()+">");    
                    }
                }
              }else if(en.getValue() != null && en.getValue().getClass().getName().equals("java.lang.String")){
                  buffer.append("<"+en.getKey()+">"+en.getValue());
                  buffer.append("</"+en.getKey()+">");
              }else{
                  buffer.append("<"+en.getKey()+">"+"");
                  buffer.append("</"+en.getKey()+">");
              }
          }
            return buffer.toString();
        }
        /**
         * 节点转map<br>
         * 方 法 名:xmlToMap <br>
         * @param eList
         * @param map
         * @return Map<String,Object>
         */
        @SuppressWarnings("unchecked")
        public static Map<String, Object> xmlToMap(List<Element> eList,Map<String, Object> map){
            for (Element e : eList) {
                Map<String, Object> eMap = new HashMap<String, Object>();
                List<Element> elementList = e.getChildren();
                if(elementList!=null&&elementList.size()>0){
                    eMap = xmlToMap(elementList,eMap);
                    Object obj = map.get(e.getName());
                    if(obj!=null){
                        List<Object> olist = new ArrayList<Object>();
                        if(obj.getClass().getName().equals("java.util.HashMap")){
                            olist.add(obj);
                            olist.add(eMap);
                        }else if(obj.getClass().getName().equals("java.util.ArrayList")){
                            olist = (List<Object>)obj;
                            olist.add(eMap);
                        }
                        map.put(e.getName(), olist);
                    }else{
                        map.put(e.getName(), eMap);
                    }
                }else{
                    map.put(e.getName(), e.getValue());
                }
            }
            return map;
        }
        /**
         * 将已经格式化的xml字符串写入xml文件
         * @param xmlStr
         * @return
         */
        public static boolean createXMLFile(String xmlStr,String xmlName){
            boolean flag = false;
            try {
                XMLWriter output = null;
                //OutputFormat   format   =   OutputFormat.createPrettyPrint(); 
                //format.setSuppressDeclaration(true);
               // format.setEncoding("UTF-8");
                //如果上面设置的xml编码类型为GBK,则应当用FileWriter来构建xml文件,否则会出现中文连码问题
                /*outpt = new XMLWriter(
                        new FileWriter( 
                                new File("D:/myeclipse/Workspaces/fusionChartsDemoTest/WebRoot/xml/"+xmlName+".xml")) ,
                                    format);
                  */
                //如果上面设置的xml编码类型为utf-8,则应当用FileOutputStream来构建xml文件,否则还是会出现问题
                output = new XMLWriter(
                        new FileOutputStream( 
                                new File("D:/"+xmlName+".xml")));
                output.setEscapeText(false);
                output.write( xmlStr );
                output.close();
                return flag = true;
            } catch (IOException e) {
                e.printStackTrace();
                return flag;
            }
        }
        public static  String formatXML(String str) throws Exception {  
            SAXReader reader=new SAXReader();
            //创建一个串的字符输入流
            StringReader in=new StringReader(str);
            org.dom4j.Document doc=reader.read(in);
           // 创建输出格式
            OutputFormat formater=OutputFormat.createPrettyPrint();
            //去掉xml文件的版本信息
            //formater.setSuppressDeclaration(true);
            //设置xml的输出编码
            formater.setEncoding("UTF-8");
            //创建输出(目标)
            StringWriter out=new StringWriter();
           //创建输出流
            XMLWriter writer=new XMLWriter(out,formater);
             //输出格式化的串到目标中,执行后。格式化后的串保存在out中。
            writer.write(doc);
            writer.close();
           // System.out.println(out.toString());
           //返回我们格式化后的结果
            return out.toString();     
        }
}

2.2 使用 dom4j 进行转换

描述:

使用 dom4j 和

com.google.gson.*

需要引入 dom4j 1.6.1 版本和 gson:

    <!-- https://mvnrepository.com/artifact/dom4j/dom4j -->
    <dependency>
        <groupId>dom4j</groupId>
        <artifactId>dom4j</artifactId>
        <version>1.6.1</version>
    </dependency>
    <dependency>
      <groupId>com.google.code.gson</groupId>
      <artifactId>gson</artifactId>
      <version>2.2.4</version>
    </dependency>
import java.io.File;
import java.io.FileOutputStream;
import java.util.Map.Entry;
import java.util.Set;
import org.dom4j.*;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
import com.google.gson.*;
public class JsonToXml2 {
        private static final String STR_JSON = "{\"stakeapply\":{\"voltageLevel\":\"AC00062\",\"stakeList\":{\"stake\":[{\"stakeAssetNO\":45754745,\"otherStakeTypeRemark\":\"xxx\",\"stationId\":\"547547547547\"},{\"stakeAssetNO\":34325325322,\"otherStakeTypeRemark\":\"xxx\",\"stationId\":\"52354645462\"}]},\"otherStationTypeRemark\":\"xxx\",\"stationAddr\":\"哈哈\",\"custLists\":{\"custList\":{\"custId\":\"7547547547\",\"custPhone\":13666666666,\"contactMode\":1}},\"principalList\":{\"principal\":[{\"principalName\":121212,\"principalType\":1},{\"principalName\":12121233,\"principalType\":1}]}}}";
        /**
         * 将json字符串转换成xml
         * 
         * @param json
         *            json字符串
         * @param parentElement
         *            xml根节点
         * @throws Exception
         */
        public static Element jsonToXml(String json, Element parentElement) throws Exception {
            JsonObject jsonObject = new JsonParser().parse(json).getAsJsonObject();
            Element ee = toXml(jsonObject, parentElement, null);
            return ee;
        }
        /**
         * 将json字符串转换成xml
         * 
         * @param jsonElement
         *            待解析json对象元素
         * @param parentElement
         *            上一层xml的dom对象
         * @param name
         *            父节点
         */
        public static Element toXml(JsonElement jsonElement, Element parentElement, String name) {
            if (jsonElement instanceof JsonArray) {
                //是json数据,需继续解析
                JsonArray sonJsonArray = (JsonArray)jsonElement;
                for (int i = 0; i < sonJsonArray.size(); i++) {
                    JsonElement arrayElement = sonJsonArray.get(i);
                    toXml(arrayElement, parentElement, name);
                }
            }else if (jsonElement instanceof JsonObject) {
                //说明是一个json对象字符串,需要继续解析
                JsonObject sonJsonObject = (JsonObject) jsonElement;
                Element currentElement = null;
                if (name != null) {
                    currentElement = parentElement.addElement(name);
                }
                Set<Entry<String, JsonElement>> set = sonJsonObject.entrySet();
                for (Entry<String, JsonElement> s : set) {
                    toXml(s.getValue(), currentElement != null ? currentElement : parentElement, s.getKey());
                }
            } else {
                //说明是一个键值对的key,可以作为节点插入了
                addAttribute(parentElement, name, jsonElement.getAsString());
            }
            return parentElement;
        }
        /**
         * 
         * @param element   父节点
         * @param name      子节点的名字
         * @param value     子节点的值
         */
        public static void addAttribute(Element element, String name, String value) {
            //增加子节点,并为子节点赋值
            Element el = element.addElement(name);
            el.addText(value);
        }
        public static void main(String[] args) throws Exception {
            Document document = DocumentHelper.createDocument();
            Element root =  document.addElement("stakeapply"); //默认根节点
            Element el = jsonToXml(STR_JSON, root);
            System.out.println(el.asXML());
            try {
                //生成xml文件
                String fileName = "test.xml";
                OutputFormat format = OutputFormat.createPrettyPrint();
                format.setEncoding("UTF-8"); // 指定XML编码
                format.setExpandEmptyElements(true);//自动添加闭合标签
                document.setXMLEncoding("UTF-8");
                //指定文件路径,名字,格式
                XMLWriter writer = new XMLWriter(
                        new FileOutputStream(new File("D:" + File.separator + fileName)), format);
                writer.write(document);
                writer.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    /*
    json串
    {
        "stakeapply": {
            "voltageLevel": "AC00062", 
            "stakeList": {
                "stake": [
                    {
                        "stakeAssetNO": 45754745, 
                        "otherStakeTypeRemark": "xxx", 
                        "stationId": "547547547547"
                    }, 
                    {
                        "stakeAssetNO": 34325325322, 
                        "otherStakeTypeRemark": "xxx", 
                        "stationId": "52354645462"
                    }
                ]
            }, 
            "otherStationTypeRemark": "xxx", 
            "stationAddr": "哈哈", 
            "custLists": {
                "custList": {
                    "custId": "7547547547", 
                    "custPhone": 13666666666, 
                    "contactMode": 1
                }
            }, 
            "principalList": {
                "principal": [
                    {
                        "principalName": 121212, 
                        "principalType": 1
                    }, 
                    {
                        "principalName": 12121233, 
                        "principalType": 1
                    }
                ]
            }
        }
    }
    */
    /*
    转换后的xml
    <?xml version="1.0" encoding="UTF-8"?>
    <stakeapply>
      <voltageLevel>AC00062</voltageLevel>
      <stakeList>
        <stake>
          <stakeAssetNO>45754745</stakeAssetNO>
          <otherStakeTypeRemark>xxx</otherStakeTypeRemark>
          <stationId>547547547547</stationId>
        </stake>
        <stake>
          <stakeAssetNO>34325325322</stakeAssetNO>
          <otherStakeTypeRemark>xxx</otherStakeTypeRemark>
          <stationId>52354645462</stationId>
        </stake>
      </stakeList>
      <otherStationTypeRemark>xxx</otherStationTypeRemark>
      <stationAddr>哈哈</stationAddr>
      <custLists>
        <custList>
          <custId>7547547547</custId>
          <custPhone>13666666666</custPhone>
          <contactMode>1</contactMode>
        </custList>
      </custLists>
      <principalList>
        <principal>
          <principalName>121212</principalName>
          <principalType>1</principalType>
        </principal>
        <principal>
          <principalName>12121233</principalName>
          <principalType>1</principalType>
        </principal>
      </principalList>
    </stakeapply>
    */
}


目录
相关文章
|
16天前
|
Java
Java中ReentrantLock中tryLock()方法加锁分析
Java中ReentrantLock中tryLock()方法加锁分析
13 0
|
5天前
|
Java 关系型数据库 MySQL
Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
【4月更文挑战第12天】Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
33 3
|
1天前
|
XML JSON 中间件
中间件数据格式JSON与XML之间的转换
中间件数据格式JSON与XML之间的转换
9 3
|
2天前
|
Java
Java 与垃圾回收有关的方法
Java 与垃圾回收有关的方法
|
3天前
|
存储 Java 测试技术
一文搞清楚Java中的方法、常量、变量、参数
在JVM的运转中,承载的是数据,而数据的一种变现形式就是“量”,量分为:**常量与变量**,我们在数学和物理学中已经接触过变量的概念了,在Java中的变量就是在程序运行过程中可以改变其值的量。
14 0
|
7天前
|
存储 Java
Java动态转发代理IP的实现方法
Java动态转发代理IP的实现方法
23 11
|
9天前
|
Java
Java接口中可以定义哪些方法?
【4月更文挑战第13天】
14 0
Java接口中可以定义哪些方法?
|
14天前
|
Java Shell
Java 21颠覆传统:未命名类与实例Main方法的编码变革
Java 21颠覆传统:未命名类与实例Main方法的编码变革
14 0
|
16天前
|
Java
Java中关于ConditionObject的signal()方法的分析
Java中关于ConditionObject的signal()方法的分析
22 4
|
16天前
|
安全 Java
append在Java中是哪个类下的方法
append在Java中是哪个类下的方法
23 9