zl程序教程

您现在的位置是:首页 >  后端

当前栏目

java笔记

2023-09-27 14:25:19 时间

1、类和方法(函数)的命名规则

总结: 类(首字母大写!!!),函数、变量 首字母小写其余首字母大写

 

2、注释的方法

//这是一个(单行)注释

/*

这是一个多行的注释 

这个是多行的注释

*/

 

4、把看似json的字符变成字典    -----这个是阿里巴巴的 hutool (统一用这个吧) 这个也有  https://www.cnblogs.com/kaibindirver/p/16110551.html

依赖: https://www.cnblogs.com/kaibindirver/p/15797247.html

import com.alibaba.fastjson.JSONObject;

String json="{name:\"张三\",age:\"18\"}";

JSONObject jo = JSONObject.parseObject(new String(json));

System.out.println(jo.get("name"));

//将javabean转化成json字符串
String jsonStr = JSON.toJSONString(Bean bean);
//将json字符串转化成对应的javabean
Bean bean = JSON.parseObject(jsonStr, Bean.class);

 

5、try 和 catch用法

方法一:

try {
  WebElement txtbox=driver.findElement(By.id("kw2"));
}catch(Exception e) {
  System.out.println("看这里"+e);
}

其中 e为try代码执行错误的原因

 

方法二:

try后不抛异常可以在catch里面放入null  # 这个待实验,伟程君说不是这样的

catch(Exception e) {
  null
}

看 这个 https://www.cnblogs.com/kaibindirver/p/15495504.html ,貌似是用  continue; 不是pass

方法三: 

catch(Exception e) {
  e.printStackTrace()     ---printStackTrace()方法的意思是:在命令行打印异常信息在程序中出错的位置及原因。
}

注意:

1、如果是内存溢出这种错误 ,要用  Error 才能捕获

 

6、踩坑点(if判断的时候不要使用== 会判断错误,要使用.equals )

if ("我是谁".equals("我是谁")){
  System.out.println(Bb.uu);
}else{
System.out.println(123);
}

if ( ! "我是谁".equals("我是谁"))   不等于 前面加感叹号

 

7、&& 2边条件都为Ture 才为真

if(null !=id2 && id2.equals("苹果")){

};

 

8、数据类型

Long 是可以为空 long是不可以为空

 

9、构造函数 (等于python的初始化)

https://www.cnblogs.com/ibelieve618/p/6364541.html

 

10、遍例数组打印

import java.util.Arrays;
import java.util.List;
List<String> strList = Arrays.asList("YangHang", "AnXiaoHei", "LiuPengFei");
strList.forEach(System.out::println);

 

 //取bug集合的数组
        JSONArray bugList=jsonObject.getJSONArray( "data");         //例子: data:[{"type":"1"},{"type":"2"}]
        bugList.forEach(obj->{
            System.out.println(22222);
            System.out.println(obj);
        });

 

 

 

11、判断字符类型

用下面这个更方便要判断的变量+.getClass().getName()

jsonArray.getClass().getName()

 

12、判断字符对应字符在第几位 且进行截断

int position = tager.indexOf("[exodus]");

截断
String targe2=tager.substring(position+9);
参考: https://www.cnblogs.com/bbllw/p/10032631.html

 

13、判断返回变量是否为空简写 返回为true or false 

https://codingdict.com/questions/110969

Objects.isNull(x)
意思就是
x == null

Objects.nonNull(x)
意思就是
x != null

 

14、避免空指针异常的写法

import org.assertj.core.util.Lists;
List<String> list = new ArrayList<String>(Arrays.asList("apple", "banana", "orange"));
List<String> newList =Optional.ofNullable(list).orElse(Lists.newArrayList()); //意思是判断list是否为null,如果为null那么就给他赋值一个空的数组
for(int i=0;i<newList.size();i++){
    System.out.println(list.get(i));

 

15、操作数组

https://www.cnblogs.com/kaibindirver/p/11825791.html

https://www.cnblogs.com/kaibindirver/p/11911091.html

 

16、抛运行时异常的方法

 if (id.equals("1")){
            log.error("id不能为空");
            throw new RuntimeException("id不能为空");
        }

 

17、判断数组是否为空的api

import org.springframework.util.CollectionUtils;
if(CollectionUtils.isEmpty(list)){}

 

 

18、字符类型转换

数字转字符类型

String s2 =String.valueOf(num);

 

19、操作json

https://www.cnblogs.com/kaibindirver/p/16151749.html

 

20、替换字符

字符.toString().replaceAll("张三", "替换里斯")

 

21、正则匹配 返回true or false

字符.matches("\\d+\\.?\\d*"))

.matches("\\d+\\.?\\d*")) 匹配 纯数字  或带小数的数字

// 整数校验
public final static String INT_REGEX_STR = "^[0-9]{1,20}$";

// 字符校验
public final static String STR_REGEX_STR = "^[A-Za-z0-9]{1,100}$";

// 价格校验
public final static String PRICE_REGEX_STR = "^-?(([1-9]{1}\\d*)|([0]{1}))(\\.(\\d){1,2})?$";

// 中文、数字、字符校验
public final static String CHINESE_STR_REGEX_STR = "^[A-Za-z0-9\\u4E00-\\u9FA5]{1,100}$";

// 中文校验
public final static String CHINESE_REGEX_STR = "^[\\u4E00-\\u9FA5]{1,100}$";
 

22、字典操作

https://www.cnblogs.com/kaibindirver/p/15316919.html

 

23、强制转换字符类型赋值的方法:

 num2= (int)9.33; //把9.33强制变成int类型赋值给num2

 System.out.println(num2)

最后输出 num2=9

 

24、switch 语句

public class Test {
   public static void main(String args[]){
      int i = 1;
      switch(i){
         case 0:
            System.out.println("0");
            break;
         case 1:
            System.out.println("1");
         case 2:
            System.out.println("2");
         case 3:
            System.out.println("3"); 
         default:
            System.out.println("default");
      }
   }
}

注意:

1、如果当前匹配成功的 case 语句块没有 break 语句,则从当前 case 开始,后续所有 case 的值都会输出,值到遇到break

2、均为匹配则执行default里的逻辑

参考: https://www.runoob.com/java/java-switch-case.html

 

 

25、for循环

int n;
for(n=10; n>0; n--)
  System.out.println("tick " + n);

 

26、while循环语句

nt n = 10;
while(n > 0) {
    System.out.println("tick " + n);
    n--;

 

27、do-while语句

(与while循环的不同在于:它先执行循环中的语句,然后再判断表达式是否为真, 如果为真则继续循环;如果为假, 则终止循环。)

do {
    System.out.println("tick " + n);
    n--;
} while(n > 0);

 

 

27、

框起代码在花括号前加上 字符+:,类似python创建了一个函数,java这里是创建一个块

 

28、break 和 continue 的区别

 for(int a=0;a<5;a++) {

      if(a==3) continue; #当a=3的时候跳至下一个循环

      System.out.println(a);

}

 

 for(int a=0;a<5;a++) {

      if(a==3) break; #当a=3的时候跳出循环

      System.out.println(a);

}

 

29、指定某个循环跳过其中一次

 

30、this和super 关键字

引用不同类的方法:

 其中 extends 应该是 本类可以去调用其他类里面的方法 的意思 ,(其实是继承的意思。super 意思调父类、this调自己)

 

 

31、字符转数字

String phone = "15994727178";
Long phone2 =Long.valueOf(phone);
 
 

32、等待

Thread.sleep(1000);
TimeUnit.DAYS.sleep(1);//天
TimeUnit.HOURS.sleep(1);//小时
TimeUnit.MINUTES.sleep(1);//分
TimeUnit.SECONDS.sleep(1);//秒
TimeUnit.MILLISECONDS.sleep(1000);//毫秒
TimeUnit.MICROSECONDS.sleep(1000);//微妙
TimeUnit.NANOSECONDS.sleep(1000);//纳秒

https://www.cnblogs.com/todarcy/p/16447147.html