javaTXT

******************快捷键
格式化代码 ctrl+shift+f
查找类ctrl+shift+r
查找类ctrl+shift+h
大括{}另一个    ctrl+shift+p
get set    alt+shift+s

******************JSON
//从字符串解析JSON对象
JSONObject obj = JSON.parseObject("{\"runoob\":\"菜鸟教程\"}");
//从字符串解析JSON数组
JSONArray arr = JSON.parseArray("[\"菜鸟教程\",\"RUNOOB\"]\n");
//将JSON对象转化为字符串
String objStr = JSON.toJSONString(obj);
//将JSON数组转化为字符串
String arrStr = JSON.toJSONString(arr);
//对象转成JSON对象
JSONObject json=JSONObject.fromObject(bean);

********net.sf.json.JSONObject
/** 
         * java对象转换成json对象,并获取json对象属性 
         */  
        JSONObject jsonStu = JSONObject.fromObject(student);  
        System.out.println(jsonStu.toString());  
        System.out.println(jsonStu.getJSONArray("hobby"));            
        /** 
         * json对象转换成java对象,并获取java对象属性 
         */  
        Student stu = (Student) JSONObject.toBean(jsonStu, Student.class);  //(JSONObject ,Bean.class)
        System.out.println(stu);  


***************java单个文件编译
编译
cmd->javac test.java
编译问题:编码GBK的不可映射字符
Utf-8
使用javac -encoding UTF-8 test.java  编译通过

运行
cmd->javac test

**************Map不重复添加
HashMap<String,String> GroupList = new HashMap<String,String>();
for(String str: listVO){
    //判断map中的key是否存在
    if(!(GroupList.containsKey(key))){        
    //不存在添加
        MaterialGroupList.put(key,value);
    }
}

//遍历map
String key=elsAccountH+"-"+toElsAccount+"-"+inspectNumber;
pihItem.setPurchaseInspectItemVOs(tempList);
resultMap.put(key, pihItem);
Map<String, PurchaseInspectHeaderVO> resultMap = new HashMap<>();
for(String key:resultMap.keySet()){
    PurchaseInspectHeaderVO headerVo = resultMap.get(key);
}

//将key(帐号)相同的数据添加到list
Map<String, List<EnquiryItemNewVO>> maps = new HashMap<>(16);
for (EnquiryItemNewVO itemVO : itemVOs) {
    if (maps.containsKey(itemVO.getToElsAccount())) {
        //如果key存在,取得key对应的list,设置key中的list
        List<EnquiryItemNewVO> list = maps.get(itemVO.getToElsAccount());//取得key对应的list
        list.add(itemVO);//设置key中的list
    } else {
        //如果key不存在,新建list对象,添加数据,设置到key
        List<EnquiryItemNewVO> list = new ArrayList<EnquiryItemNewVO>();
        list.add(itemVO);
        maps.put(itemVO.getToElsAccount(), list);//list设置到list
    }
}
结果:{key:670001,value:List<EnquiryItemNewVO>,key:670002,value:List<EnquiryItemNewVO>}


*************包含contains
if (url.contains("elsSsoCode=") && url.contains("elsAccount=")) {
}
*************instanceof
instanceof是Java中的二元运算符,左边是对象,右边是类;当对象是右边类或子类所创建对象时,返回true;否则,返回false。

**************LIst的item删除
List<PurchaseSuppliedItemVO> lstVO=PurchaseSuppliedItemMapper.list1(record);
Iterator<PurchaseSuppliedItemVO> it = lstVO.iterator();
while(it.hasNext()){
    PurchaseSuppliedItemVO a = it.next();
    if("100".equals(a.getDealType()) || "140".equals(a.getDealType())){
        it.remove();
    }
}

*************JSONArray对象是否这空
if(jsonArray.isEmpty()){操作}


****************时间
Date beginTime= new Date();
Date paramTime = new Date();
// 处理参数时间:
sbf.append("处理入参时间:" + (paramTime.getTime() - beginTime.getTime()) + "ms/n");

String dateStart = "2013-02-19 09:29:58";
String dateStop = "2013-02-20 11:31:48";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d1 = format.parse(dateStart);

//mysql时间2019-08-07 13:04:57,表字段createDate datetime类型
private Date createDate;//定义
Date currDate = Calendar.getInstance().getTime();
head.setCreateDate(currDate);//设置值

*****************类型转换,float,double,字符型
String to Double
Double.valueOf(saleDeliveryPlanVO.getFbk6())
private Double price;//提货金额

float f = Float.parseFloat("25");
String s = Float.toString(25.0f);

****************?5个基本注解
@Override
伪代码,所以是可写可不写的。它表示方法重写,写上的好处如下: 
1.可以当注释用,方便阅读. 
2.告诉阅读你代码的人,这是方法的复写. 
@SuppressWarnings
作用:告诉编译器忽略指定的警告,不用在编译完成后出现警告信息。
作用范围:可以标注在类、字段、方法、参数、构造方法,以及局部变量上。
使用方式:@SuppressWarnings(“”)@SuppressWarnings({})@SuppressWarnings(value={})

********************时间格式化
传入的时间格式
{
    "endPullinDate": 1562630400000,
     "startPullinDate": 1562544000000,

}
Bean中格式化传入的时间
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date startPullinDate;// 拉货时间

@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date endPullinDate;

//日期
private Date lastUpdateDate;
head.setLastUpdateDate(new Date());

****************for循环
break是跳出当前循环
continue后面的代码不执行

******************list
匿名内部类实现list排序
public class sort {
  public static void main(String[] args) {
  List<User> list = new ArrayList<User>();
  list.add(new User("张三", 5));
  list.add(new User("李四", 30));
  list.add(new User("王五", 19));
  list.add(new User("陈十七", 17)); // 陈十七永远十七岁
  Collections.sort(list, new Comparator<User>() {
    @Override
    public int compare(User u1, User u2) {
      int diff = u1.getAge() - u2.getAge();
      if (diff > 0) {
        return 1;
      }else if (diff < 0) {
        return -1;
      }
      return 0; //相等为0
    }
  }); // 按年龄排序
  System.out.println(list.toString());
  }
}

************************BigDecimal 比较,加减乘除
BigDecimal a = new BigDecimal (101);
BigDecimal b = new BigDecimal (111);
 //使用compareTo方法比较
//注意:a、b均不能为null,否则会报空指针
if(a.compareTo(b) == -1){
    System.out.println("a小于b");

if(a.compareTo(b) == 0){
    System.out.println("a等于b");

if(a.compareTo(b) == 1){
    System.out.println("a大于b");

if(a.compareTo(b) > -1){
    System.out.println("a大于等于b");

if(a.compareTo(b) < 1){
    System.out.println("a小于等于b");
}

//尽量用字符串的形式初始,如“0.005”加上了双引号
BigDecimal num12 = new BigDecimal("0.005");
BigDecimal num22 = new BigDecimal("1000000");
//加法
BigDecimal result12 = num12.add(num22);
//减法
 BigDecimal result22 = num12.subtract(num22);
//乘法
BigDecimal result3 = num1.multiply(num2);
BigDecimal result32 = num12.multiply(num22);
//绝对值
 igDecimal result4 = num3.abs();
BigDecimal result42 = num32.abs();
//除法
BigDecimal result5 = num2.divide(num1,20,BigDecimal.ROUND_HALF_UP);
BigDecimal result52 = num22.divide(num12,20,BigDecimal.ROUND_HALF_UP);
System.out.println("加法用string结果:"+result12);

// BigDecimal转String,普通的数字字符串
 System.out.println(new BigDecimal("100.000").toString());//结果:100.000

//bigDecimal  转换成  int类型
       public static void bigDecimalToInt(){
            BigDecimal b = new BigDecimal(12);
            int c = b.intValue();
        }
//int  转换成  bigDecimal类型
    public static void intToBigDecimal(){
        int b = 5;
        BigDecimal a = new BigDecimal(b);
        System.out.println(a +"的数据类型是"+a.getClass().getName());
    }

//去掉小数位后的0
BigDecimal price1=new BigDecimal("0.00");    //0.00
BigDecimal price2=new BigDecimal("0.100");    //0.100
BigDecimal  b1=price1.stripTrailingZeros();    //0
BigDecimal  b2=price2.stripTrailingZeros();    //0.1


********************判断整型,判断小数
public static boolean isNumber1(String str) {// 判断整型
        return str.matches("^\\d+$$");
    }
 
    public static boolean isNumber2(String str) {// 判断小数,与判断整型的区别在与d后面的小数点(红色)
        return str.matches("\\d+\\.\\d+$");
    }
 
    public static boolean isNumber3(String str) {// 判断小数点开头
        return str.matches("\\.\\d+$");
    }

********************java常用的中间件
常用的中间件:tomcat,Weblogic,JBOSS,Coldfusion,Websphere,GlassFish
linux系统建议使用jetty或apache hpptd
大型的项目就用JBOSS或webloigc
小项目,或者是个人开发tomcat 大项目或者商业项目一般采用:weblgoic/webshere
其他的还有jboss、glasshfish等

*************去掉最后一个字符StringBuffer 
StringBuffer str= new StringBuffer("name,");
str .append("age,")
str.deleteCharAt(str.length() - 1);
String result=str.toString();

******************枚举Enum
public enum EnquiryStatusEnum {    
    NEW("0","新建"), 
    QUOTE("1","报价中"),
    QUOTED("2","已报价"),
    AGAIN_QUOTE("3","重报价"),
    ACCEPT("4","接受"),
    REJECT("5","拒绝"),
    CANCEL("6","作废"),
    ALTERNATIVE("7","备选"),
    CLOSE("8","关闭");    
    private final String value ;
    private final String desc  ;    
    EnquiryStatusEnum(String value,String desc) 
    {
        this.value = value;
        this.desc=desc;
    }    
    public String getValue() 
    {
        return value;
    }    
    public String getDesc() 
    {
        return desc;
    }    
}
使用:
EnquiryStatusEnum.AGAIN_QUOTE.getValue();//结果3

date


*******************SpringBoot   ajax传一个参数到java,不是对象不要加上@ResponseBody注解,就可以在方法写上参数名
@RequestMapping(value="activity/ggUserQuery.do", method=RequestMethod.POST)
public void ggUserQuery(HttpServletRequest request,HttpServletResponse response,String ggUserid) {
.....}

文章地址:https://www.cnblogs.com/shirandedan/p/7727326.html
@RequestParam 和request.getParameter是同一回事。
前端请求传Json对象则后端使用@RequestParam;
前端请求传Json对象的字符串则后端使用@RequestBody。
************@RequestParam
前端代码
  $.ajax({
        type: 'GET',
        url: '/weibo/list',
        cache: 'false',
        data: {
            "startdt": formData['startdt'],
            "enddt": formData['enddt'],
            "provinceName": formData['provinceName']
        },
        dataType: 'json',
        //contentType : 'application/x-www-form-urlencoded;charset=UTF-8',
     headers : {
        'Content-Type' : 'application/json;charset=utf-8'
    },
        success: function (result) {...}<br>后端代码
   @RequestMapping("/list")
   @ResponseBody
   public List<Object> getWeiboAndCellList(@RequestParam("startdt") String date1, @RequestParam("enddt") String date2, @RequestParam("provinceName") String province) {...}

************@RequestBody
前端代码 
var obj ={};
obj["user"] = JSON.stringify(this.update);
obj["classRoomId"] = this.classRoomid;
$.ajax({
         type: 'POST',
         url: url,
         dataType: 'json',
         cache: false,
         headers : {
               'Content-Type' : 'application/json;charset=utf-8'
        },
        data: JSON.stringify(obj),
        success: function (result) {...}
});
后端代码
@RequestMapping("/updateUser")
@ResponseBody
public User updateUser(@RequestBody Map<String, Object> map){...}

************************java的对象属性用了大写
java的对象属性WESBS用了大写,后台要接收成功要改成小写wesbs传


****************返回状态对应的中文
String statusStr="0:审批通过;1:未审批;2:审批中;3:审批拒绝";
String statusName=dictionaryFormat(2+"",statusStr);
public String dictionaryFormat(String var,String statusDesc){
    if(StringUtils.isBlank(var)){
        return "";
    }
    String [] arr=statusDesc.split(";");
    for(String item:arr){
        String key=item.split(":")[0];
        if(var.equals(key)){
            return item.split(":")[1];
        }
    }
    return var;
}    

*******************com.alibaba.fastjson
对象to JSON
 Person person = new Person("1","fastjson",1);  
//这里将javabean转化成json字符串  
String jsonString = JSON.toJSONString(person);  
System.out.println(jsonString);  
//这里将json字符串转化成javabean对象,  
 person =JSON.parseObject(jsonString,Person.class);  

LIST To JSON
Person person1 = new Person("1","fastjson1",1);  
Person person2 = new Person("2","fastjson2",2);  
List<Person> persons = new ArrayList<Person>();  
persons.add(person1);  
persons.add(person2);  
String jsonString = JSON.toJSONString(persons);  
System.out.println("json字符串:"+jsonString);  
//解析json字符串  
List<Person> persons2 = JSON.parseArray(jsonString,Person.class);  

//Map -> JSON 
Map<String,Bar> map = new HashMap<String, Bar>(); 
map.put("a",new Bar()); 
map.put("b",new Bar()); 
map.put("c",new Bar()); 
String json = JSON.toJSONString(map,true); 
System.out.println(json); 
//JSON -> Map 
Map<String,Bar> map1 = (Map<String,Bar>)JSON.parse(json); 
for (String key : map1.keySet()) { 
    System.out.println(key+":"+map1.get(key)); 


JSONObject jsStr = JSONObject.parseObject(requestBody); //符串转JSON

<%@ page import="net.sf.json.JSONObject" %>
<%@ page import="net.sf.json.JSONArray" %>
JSONObject jsonObj = new JSONObject(jsonStr);
JSONObject myJson = JSONObject.fromObject(jsonMessage);
 //符串转JSONArray
JSONArray json = JSONArray.fromObject(str )
if(json.size()>0){
  for(int i=0;i<json.size();i++){
    JSONObject job = json.getJSONObject(i);  // 遍历 jsonarray 数组,把每一个对象转成 json 对象
    System.out.println(job.get("name")+"=") ;  // 得到 每个对象中的属性值
  }
}
JSONObject jsonbject = JSONObject.fromObject(httpPost4Instream);
JSONArray jsonArray = jsonbject.getJSONArray("stores");
String string = jsonArray.getString(0);
JSONObject fromObject = JSONObject.fromObject(string);
String startDate = fromObject.getString("startDate");
String endDate = fromObject.getString("endDate");
param.setFromDate(Long.valueOf(startDate).longValue());
param.setToDate(Long.valueOf(endDate).longValue());

****************webservice接口调用 
new->web services,web service Client,填入地址

**************系统路径
//路径D:\wordspace_jee\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\SeineWechat\uploadfile
String realPath = request.getSession().getServletContext().getRealPath("/uploadfile");
File path = new File(realPath);
if(!path.exists()){
  path.mkdirs();
}

//路径http://127.0.0.1:8080/SeineWechat
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path;    


*****************XML忽略<![CDATA[...忽略的内容]]
如果文本包含了很多的"<"字符 <=和"&"字符——就象程序代码一样,那么最好把他们都放到CDATA部件中。在CDATA内部的所有内容都会被解析器忽略
<![CDATA[......]]
"<![CDATA[<]]>a href='"+imgpth+"' target='_blank' <![CDATA[>]]>"+imgNameArr[i]+"<![CDATA[</a>&emsp;]]>"


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值