常用API
5、正则表达式
·2088 字·5 分钟·
loading
·
loading
Java
常用API
JDK原生
正则表达式 # 正则表达式定义了字符串的模式。 正则表达式可以用来搜索、编辑或处理文本。 正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。 语法 #
4、Lombok
·818 字·2 分钟·
loading
·
loading
Java
常用API
第三方
Lombok # Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java. Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more. Lombok简单理解就是一个Java类库,通过注解的形式帮助开发减少一些结构化代码的开发工作,提高开发效率,比如通过@Data注解,class在编译的时候会自动生成get,set,equals,hash,toString等方法,避免写大量的代码,减少了代码量,也使代码看起来更加简洁。尤其是一些对象属性需要改动的时候,每次改动都需要重新生成get,set,equals,hash,toString等方法,而使用注解则可以避免此问题。
3、包装类
·604 字·2 分钟·
loading
·
loading
Java
常用API
JDK原生
包装类(封装类) # Java是一个面向对象的编程语言,但是Java中的八种基本数据类型却是不面向对象的,为了使用方便和解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八种基本数据类型对应的类统称为包装类(Wrapper Class),包装类均位于java.lang包。
3、POI
·700 字·2 分钟·
loading
·
loading
Java
常用API
第三方
用于在java程序中,解析读取excel文档
依赖 # <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.14</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.14</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml-schemas</artifactId> <version>3.14</version> </dependency> 工具类 # public class POIUtil { //读取数据 public static List<List<String>> read(String excelPath,int sheetNum){ //根据文件后缀,创建不同的电子表格对象 Workbook workbook = null; File file = new File(excelPath); InputStream input; try { input = new FileInputStream(file); if(excelPath.endsWith("xlsx")){ //创建 Excel 2007 电子表格对象 workbook = new XSSFWorkbook(input); }else{ //创建 Excel 2003 工作簿对象 workbook = new HSSFWorkbook(input); } } catch (Exception e) { e.printStackTrace(); } return parse(workbook,sheetNum); } private static List<List<String>> parse(Workbook workbook,int sheetNum){ //获取当前的工作簿 Sheet sheet = workbook.getSheetAt(sheetNum); List<List<String>> excelList = new ArrayList<>(); //遍历表格所有行 for(int i = 0;i <= sheet.getLastRowNum();i++){ //获取行对象 Row row = sheet.getRow(i); //如果当前行为空,则开始下一行循环 if(row == null){ continue; } List<String> rowList = new ArrayList<>(); //遍历行中的所有列 for(int j = 0;j < row.getLastCellNum();j++){ //获取列对象 Cell cell = row.getCell(j); String cellStr = ""; //判断当前列数据类型 if(cell == null){ cellStr = ""; }else if(cell.getCellType() == Cell.CELL_TYPE_BOOLEAN){ //布尔类型 cellStr = String.valueOf(cell.getBooleanCellValue()); }else if(cell.getCellType() == Cell.CELL_TYPE_NUMERIC){ //数值类型 cellStr = (int)cell.getNumericCellValue() + ""; }else if(cell.getCellType() == Cell.CELL_TYPE_FORMULA){ //公式类型 cellStr = cell.getCellFormula(); }else{ //其余按字符串处理 cellStr = cell.getStringCellValue(); } rowList.add(cellStr); } excelList.add(rowList); } return excelList; } //写入到excel public static String write(String[] title, String sheetName, List<List<String>> data,String excelPath){ //创建Excel 2007 电子表格对象 Workbook wb = new XSSFWorkbook(); //设置sheet名称,并创建新的sheet对象 Sheet sheet = wb.createSheet(sheetName); //获取表头行 Row titleRow = sheet.createRow(0); //创建单元格,设置style居中,字体,单元格大小等 CellStyle style = wb.createCellStyle(); Cell cell = null; //把已经写好的标题行写入excel文件中 for (int i = 0; i < title.length; i++) { cell = titleRow.createCell(i); cell.setCellValue(title[i]); cell.setCellStyle(style); } //将数据写入excel Row row = null; for (int i = 0;i < data.size();i++){ row = sheet.createRow(i + 1); List<String> dataList = data.get(i); for (int j = 0;j < dataList.size();j++){ row.createCell(j).setCellValue(dataList.get(j)); } } //设置单元格宽度自适应,在此基础上把宽度调至1.5倍 for (int i = 0; i < title.length; i++) { sheet.autoSizeColumn(i, true); //注意单个单元格的最大列宽是255个字符 //sheet.setColumnWidth(i, sheet.getColumnWidth(i) * 15 / 10); } //创建上传文件目录 File folder = new File(excelPath); //如果文件夹不存在创建对应的文件夹 if (!folder.exists()) { folder.mkdirs(); } //设置文件名 Date date = new Date(); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddhhmmss"); String format = dateFormat.format(date); String fileName = format + sheetName + ".xlsx"; String savePath = folder + File.separator + fileName; // System.out.println(savePath); try { OutputStream fileOut = new FileOutputStream(savePath); wb.write(fileOut); fileOut.close(); } catch (Exception e) { e.printStackTrace(); } //返回文件保存全路径 return savePath; } }
2、定时器
·10604 字·22 分钟·
loading
·
loading
Java
常用API
第三方
Java实现定时器的方式 # 1、Timer:这是Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行,一般使用比较少
2、Object
·2946 字·6 分钟·
loading
·
loading
Java
常用API
JDK原生
java.lang.Object # Object类是所有Java类的根父类 如果在类的声明中未使用extends关键字指明其父类,则默认父类为java.lang.Object类 Object类中的功能(方法)具有通用性。 Object类只声明了一个空参的构造器 registerNatives() # native方法,让程序主动将本地方法链接到调用方,当Java程序需要调用本地方法时就可以直接调用,而不需要虚拟机再去定位并链接。
1、JNA
·584 字·2 分钟·
loading
·
loading
Java
常用API
第三方
JNI和JNA # Java原生自带的JNI,它允许Java代码和其他语言(尤其C/C++)写的代码进行交互,只要遵守调用约定即可。首先看下JNI调用C/C++的过程,注意写程序时自下而上,调用时自上而下。