import{_ as t}from"./plugin-vue_export-helper.21dcd24c.js";import{r as p,o,c,a,b as e,e as i,d as n}from"./app.615e41d8.js";const l={},u=i(`

\u5766\u767D\u4ECE\u5BBD\u5427\uFF0C\u6211\u5C31\u662F\u90A3\u4E2A\u82B1\u4E86\u4E24\u5929\u4E24\u591C\u628A 1M \u56FE\u7247\u4F18\u5316\u5230 100kb \u7684\u5BB6\u4F19\u2014\u2014\u738B\u5C0F\u4E8C\uFF01

\u81EA\u4ECE\u56E0\u4E3A\u4E00\u7BC7\u62A5\u9053\u767B\u4E0A\u70ED\u641C\u540E\uFF0C\u6211\u5DEE\u70B9\u6291\u90C1\uFF0C\u6BCF\u5929\u8981\u9760 50 \u7247\u5B89\u7720\u836F\u624D\u80FD\u5165\u7761\u3002

\u7F51\u7EDC\u4E0A\u66DD\u5149\u7684\u90A3\u4E9B\u5173\u4E8E\u4E00\u7801\u901A\u7684\u6D88\u606F\uFF0C\u6709\u771F\u6709\u5047\uFF0C\u6211\u8FD9\u91CC\u5C31\u4E0D\u518D\u6F84\u6E05\u4E86\u3002\u5C31\u8BF4\u8BF4\u6211\u662F\u600E\u4E48\u628A\u56FE\u7247\u4ECE 1M \u4F18\u5316\u5230 100kb \u7684\u6545\u4E8B\u5427\u3002

\u662F\u7684\uFF0C\u7531\u4E8E\u7CFB\u7EDF\u7FA4\u4F53\u89C4\u6A21\u548C\u8BBF\u95EE\u89C4\u6A21\u7684\u7279\u6B8A\u6027\uFF0C\u6BCF\u4E00\u884C\u4EE3\u7801\u3001\u6BCF\u4E00\u5F20\u56FE\u7247\u3001\u6BCF\u4E00\u4E2A\u6280\u672F\u6587\u6863\u90FD\u53CD\u590D\u6838\u51C6\uFF0C\u4F18\u5316\u518D\u4F18\u5316\uFF0C\u7CBE\u76CA\u6C42\u7CBE\u3002\u4E3A\u786E\u4FDD\u7CFB\u7EDF\u8FD0\u884C\u5F97\u66F4\u9AD8\u6548\uFF0C\u6211\u4EEC\u5C06\u4E00\u5F20\u56FE\u7247\u4ECE1MB\u538B\u7F29\u5230500KB\uFF0C\u518D\u4ECE500KB\u4F18\u5316\u5230100KB\u3002

\u8FD9\u6837\u7684\u5DE5\u4F5C\u5728\u5916\u4EBA\u770B\u8D77\u6765\uFF0C\u7B80\u5355\u5230\u5C31\u597D\u50CF\u6084\u6084\u7ED9\u5B66\u59B9\u585E\u4E00\u5F20\u60C5\u4E66\u5C31\u80FD\u8BA9\u5979\u505A\u6211\u5973\u670B\u53CB\u4E00\u6837\u7B80\u5355\u3002

\u4F46\u6B8A\u4E0D\u77E5\uFF0C\u8FD9\u5176\u4E2D\u8574\u542B\u7740\u6781\u9AD8\u7684\u6280\u672F\u542B\u91CF\uFF01

\u4E0D\u4FE1\uFF0C\u6211\u7ED9\u4F60\u4EEC\u666E\u53CA\u4E0B\u3002

\u4E00\u3001\u56FE\u50CF\u538B\u7F29

\u56FE\u50CF\u538B\u7F29\u662F\u6570\u636E\u538B\u7F29\u6280\u672F\u5728\u6570\u5B57\u56FE\u50CF\u4E0A\u7684\u5E94\u7528\uFF0C\u76EE\u7684\u662F\u51CF\u5C11\u56FE\u50CF\u6570\u636E\u4E2D\u7684\u5197\u4F59\u4FE1\u606F\uFF0C\u4ECE\u800C\u7528\u66F4\u52A0\u9AD8\u6548\u7684\u683C\u5F0F\u5B58\u50A8\u548C\u4F20\u8F93\u6570\u636E\u3002

\u56FE\u50CF\u538B\u7F29\u53EF\u4EE5\u662F\u6709\u635F\u6570\u636E\u538B\u7F29\uFF0C\u4E5F\u53EF\u4EE5\u662F\u65E0\u635F\u6570\u636E\u538B\u7F29\u3002

\u600E\u4E48\u6837\uFF1F

\u662F\u4E0D\u662F\u611F\u89C9\u56FE\u50CF\u538B\u7F29\u6280\u672F\u6CA1\u6709\u60F3\u8C61\u4E2D\u90A3\u4E48\u7B80\u5355\u4E86\uFF1F

\u66F4\u591A\u5173\u4E8E\u56FE\u50CF\u538B\u7F29\u7684\u8D44\u6599\u53EF\u53C2\u8003\u4EE5\u4E0B\u94FE\u63A5\u3002

\u673A\u5668\u4E4B\u5FC3\uFF1Ahttps://www.jiqizhixin.com/graph/technologies/08b2b25e-21a0-48e1-9de8-f91d424adfe1

\u4E8C\u3001Java\u6570\u5B57\u56FE\u50CF\u5904\u7406

\u4F5C\u4E3A\u8FD9\u6B21\u201C20 \u591A\u4E07\u5916\u5305\u9879\u76EE\u201D\u7684\u201C\u4E3B\u529B\u5F00\u53D1\u4EBA\u5458\u201D\uFF0C\u6211\u8FD9\u91CC\u5C31\u7ED9\u5927\u5BB6\u4ECB\u7ECD\u4E0B Java \u6570\u5B57\u56FE\u50CF\u5904\u7406\u6280\u672F\u5427\uFF0C\u4E00\u5F00\u59CB\u6211\u5C31\u662F\u7528\u5B83\u6765\u5904\u7406\u56FE\u7247\u7684\u3002

\u6570\u5B57\u56FE\u50CF\u5904\u7406\uFF08Digital Image Processing\uFF09\u662F\u901A\u8FC7\u8BA1\u7B97\u673A\u5BF9\u56FE\u50CF\u8FDB\u884C\u53BB\u9664\u566A\u58F0\u3001\u589E\u5F3A\u3001\u590D\u539F\u3001\u5206\u5272\u3001\u63D0\u53D6\u7279\u5F81\u7B49\u5904\u7406\u7684\u65B9\u6CD5\u548C\u6280\u672F\u3002

\u8F93\u5165\u7684\u662F\u56FE\u50CF\u4FE1\u53F7\uFF0C\u7136\u540E\u7ECF\u8FC7 DIP \u8FDB\u884C\u6709\u6548\u7684\u7B97\u6CD5\u5904\u7406\u540E\uFF0C\u8F93\u51FA\u4E3A\u6570\u5B57\u4FE1\u53F7\u3002

\u4E3A\u4E86\u538B\u7F29\u56FE\u50CF\uFF0C\u6211\u4EEC\u9700\u8981\u8BFB\u53D6\u56FE\u50CF\u5E76\u5C06\u5176\u8F6C\u6362\u6210 BufferedImage \u5BF9\u8C61\uFF0CBufferedImage \u662F Image \u7C7B\u7684\u4E00\u4E2A\u5B50\u7C7B\uFF0C\u63CF\u8FF0\u4E86\u4E00\u4E2A\u5177\u6709\u53EF\u8BBF\u95EE\u7684\u56FE\u50CF\u6570\u636E\u7F13\u51B2\u533A\uFF0C\u7531 ColorModel \u548C Raster \u7684\u56FE\u50CF\u6570\u636E\u7EC4\u6210\u3002

\u5E9F\u8BDD\u6211\u5C31\u4E0D\u591A\u8BF4\u4E86\uFF0C\u76F4\u63A5\u8FDB\u5165\u5B9E\u6218\u5427\uFF01

\u4E09\u3001\u56FE\u50CF\u538B\u7F29\u5B9E\u6218

\u521A\u597D\u6211\u672C\u5730\u6709\u4E00\u5F20\u4E4B\u524D\u7528\u8FC7\u7684\u5C01\u9762\u56FE\uFF0C\u79BB 1M \u53EA\u5DEE 236 KB\uFF0C\u53EF\u4EE5\u62FF\u6765\u4F5C\u4E3A\u6D4B\u8BD5\u7528\u3002

\u8FD9\u5176\u4E2D\u8981\u7528\u5230 ImageIO \u7C7B\uFF0C\u8FD9\u662F\u4E00\u4E2A\u9759\u6001\u7C7B\uFF0C\u63D0\u4F9B\u4E86\u4E00\u7CFB\u5217\u65B9\u6CD5\u7528\u6765\u8BFB\u548C\u5199\u56FE\u50CF\uFF0C\u540C\u65F6\u8FD8\u53EF\u4EE5\u5BF9\u56FE\u50CF\u8FDB\u884C\u7B80\u5355\u7684\u7F16\u7801\u548C\u89E3\u7801\u3002

\u6BD4\u5982\u8BF4\u901A\u8FC7 ImageIO.read() \u53EF\u4EE5\u5C06\u56FE\u50CF\u8BFB\u53D6\u5230 BufferedImage \u5BF9\u8C61\uFF1A

File input = new File("ceshi.jpg");
BufferedImage image = ImageIO.read(input);

\u6BD4\u5982\u8BF4\u901A\u8FC7 ImageIO.getImageWritersByFormatName() \u53EF\u4EE5\u8FD4\u56DE\u4E00\u4E2AIterator\uFF0C\u5176\u4E2D\u5305\u542B\u4E86\u901A\u8FC7\u547D\u540D\u683C\u5F0F\u5BF9\u56FE\u50CF\u8FDB\u884C\u7F16\u7801\u7684 ImageWriter\u3002

Iterator<ImageWriter> writers =  ImageIO.getImageWritersByFormatName("jpg");
ImageWriter writer = (ImageWriter) writers.next();

\u6BD4\u5982\u8BF4\u901A\u8FC7 ImageIO.createImageOutputStream() \u53EF\u4EE5\u521B\u5EFA\u4E00\u4E2A\u56FE\u50CF\u7684\u8F93\u51FA\u6D41\u5BF9\u8C61\uFF0C\u6709\u4E86\u8BE5\u5BF9\u8C61\u540E\u5C31\u53EF\u4EE5\u901A\u8FC7 ImageWriter.setOutput() \u5C06\u5176\u8BBE\u7F6E\u4E3A\u8F93\u51FA\u6D41\u3002

File compressedImageFile = new File("bbcompress.jpg");
OutputStream os =new FileOutputStream(compressedImageFile);
ImageOutputStream ios = ImageIO.createImageOutputStream(os);
writer.setOutput(ios);

\u7D27\u63A5\u7740\uFF0C\u53EF\u4EE5\u5BF9 ImageWriter \u8FDB\u884C\u4E00\u4E9B\u53C2\u6570\u914D\u7F6E\uFF0C\u6BD4\u5982\u8BF4\u538B\u7F29\u6A21\u5F0F\uFF0C\u538B\u7F29\u8D28\u91CF\u7B49\u7B49\u3002

ImageWriteParam param = writer.getDefaultWriteParam();

param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
param.setCompressionQuality(0.01f);

\u538B\u7F29\u6A21\u5F0F\u4E00\u5171\u6709\u56DB\u79CD\uFF0CMODE_EXPLICIT \u662F\u5176\u4E2D\u4E00\u79CD\uFF0C\u8868\u793A ImageWriter \u53EF\u4EE5\u6839\u636E\u540E\u7EED\u7684 set \u7684\u9644\u52A0\u4FE1\u606F\u8FDB\u884C\u5E73\u94FA\u548C\u538B\u7F29\uFF0C\u6BD4\u5982\u8BF4\u63A5\u4E0B\u6765\u7684 setCompressionQuality() \u65B9\u6CD5\u3002

setCompressionQuality() \u65B9\u6CD5\u7684\u53C2\u6570\u662F\u4E00\u4E2A 0-1 \u4E4B\u95F4\u7684\u6570\uFF0C0.0 \u8868\u793A\u5C3D\u6700\u5927\u7A0B\u5EA6\u538B\u7F29\uFF0C1.0 \u8868\u793A\u4FDD\u8BC1\u56FE\u50CF\u8D28\u91CF\u5F88\u91CD\u8981\u3002\u5BF9\u4E8E\u6709\u635F\u538B\u7F29\u65B9\u6848\uFF0C\u538B\u7F29\u8D28\u91CF\u5E94\u8BE5\u63A7\u5236\u6587\u4EF6\u5927\u5C0F\u548C\u56FE\u50CF\u8D28\u91CF\u4E4B\u95F4\u7684\u6743\u8861\uFF08\u4F8B\u5982\uFF0C\u901A\u8FC7\u5728\u5199\u5165 JPEG \u56FE\u50CF\u65F6\u9009\u62E9\u91CF\u5316\u8868\uFF09\u3002 \u5BF9\u4E8E\u65E0\u635F\u65B9\u6848\uFF0C\u538B\u7F29\u8D28\u91CF\u53EF\u7528\u4E8E\u63A7\u5236\u6587\u4EF6\u5927\u5C0F\u548C\u6267\u884C\u538B\u7F29\u6240\u9700\u7684\u65F6\u95F4\u4E4B\u95F4\u7684\u6743\u8861\uFF08\u4F8B\u5982\uFF0C\u901A\u8FC7\u4F18\u5316\u884C\u8FC7\u6EE4\u5668\u5E76\u5728\u5199\u5165 PNG \u56FE\u50CF\u65F6\u8BBE\u7F6E ZLIB \u538B\u7F29\u7EA7\u522B\uFF09\u3002

\u6574\u4F53\u4EE3\u7801\u5982\u4E0B\u6240\u793A\uFF1A

public class Demo {
    public static void main(String[] args) {

        try {
            File input = new File("ceshi.jpg");
            BufferedImage image = ImageIO.read(input);


            Iterator<ImageWriter> writers = ImageIO.getImageWritersByFormatName("jpg");
            ImageWriter writer = (ImageWriter) writers.next();

            File compressedImageFile = new File("bbcompress.jpg");
            OutputStream os = new FileOutputStream(compressedImageFile);
            ImageOutputStream ios = ImageIO.createImageOutputStream(os);
            writer.setOutput(ios);


            ImageWriteParam param = writer.getDefaultWriteParam();

            param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
            param.setCompressionQuality(0.01f);

            writer.write(null, new IIOImage(image, null, null), param);

            os.close();
            ios.close();
            writer.dispose();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

\u6267\u884C\u538B\u7F29\u540E\uFF0C\u53EF\u4EE5\u770B\u5230\u56FE\u7247\u7684\u5927\u5C0F\u538B\u7F29\u5230\u4E86 19 KB\uFF1A

\u53EF\u4EE5\u770B\u5F97\u51FA\uFF0C\u8D28\u91CF\u56E0\u5B50\u4E3A 0.01f \u7684\u65F6\u5019\u56FE\u7247\u5DF2\u7ECF\u6709\u4E9B\u5931\u771F\u4E86\uFF0C\u53EF\u4EE5\u9002\u5F53\u63D0\u9AD8\u8D28\u91CF\u56E0\u5B50\u6BD4\u5982\u8BF4 0.5f\uFF0C\u518D\u6765\u770B\u4E00\u4E0B\u3002

\u56FE\u7247\u8D28\u91CF\u660E\u663E\u63D0\u9AD8\u4E86\uFF0C\u4F46\u5927\u5C0F\u4F9D\u7136\u53EA\u6709 64 KB\uFF0C\u538B\u7F29\u6548\u679C\u8FD8\u662F\u503C\u5F97\u4FE1\u8D56\u7684\u3002

\u56DB\u3001\u5176\u4ED6\u5F00\u6E90\u5E93

\u63A5\u4E0B\u6765\uFF0C\u63A8\u8350\u4E00\u4E9B\u53EF\u4EE5\u8F7B\u677E\u96C6\u6210\u5230\u9879\u76EE\u4E2D\u7684\u56FE\u50CF\u5904\u7406\u5E93\u5427\uFF0C\u5B83\u4EEC\u5168\u90FD\u662F\u514D\u8D39\u7684\u3002

1\uFF09ImageJ\uFF0C\u7528 Java \u7F16\u5199\u7684\uFF0C\u53EF\u4EE5\u7F16\u8F91\u3001\u5206\u6790\u3001\u5904\u7406\u3001\u4FDD\u5B58\u548C\u6253\u5370\u56FE\u50CF\u3002

2\uFF09Apache Commons Imaging\uFF0C\u4E00\u4E2A\u8BFB\u53D6\u548C\u5199\u5165\u5404\u79CD\u56FE\u50CF\u683C\u5F0F\u7684\u5E93\uFF0C\u5305\u62EC\u5FEB\u901F\u89E3\u6790\u56FE\u50CF\u4FE1\u606F\uFF08\u5982\u5927\u5C0F\uFF0C\u989C\u8272\uFF0C\u7A7A\u95F4\uFF0CICC\u914D\u7F6E\u6587\u4EF6\u7B49\uFF09\u548C\u5143\u6570\u636E\u3002

3\uFF09ImageMagick\uFF0C\u53EF\u4EE5\u8BFB\u53D6\u548C\u5199\u5165\u8D85\u8FC7100\u79CD\u683C\u5F0F\u7684\u56FE\u50CF\uFF0C\u5305\u62ECDPX\u3001EXR\u3001GIF\u3001JPEG\u3001JPEG-2000\u3001PDF\u3001PNG\u3001Postscript\u3001SVG\u548CTIFF\u3002\u8FD8\u53EF\u4EE5\u8C03\u6574\u5927\u5C0F\u3001\u7FFB\u8F6C\u3001\u955C\u50CF\u3001\u65CB\u8F6C\u3001\u626D\u66F2\u3001\u526A\u5207\u548C\u53D8\u6362\u56FE\u50CF\uFF0C\u8C03\u6574\u56FE\u50CF\u989C\u8272\uFF0C\u5E94\u7528\u5404\u79CD\u7279\u6B8A\u6548\u679C\uFF0C\u5305\u62EC\u7ED8\u5236\u6587\u672C\u3001\u7EBF\u6761\u3001\u591A\u8FB9\u5F62\u3001\u692D\u5706\u548C\u8D1D\u585E\u5C14\u66F2\u7EBF\u3002

4\uFF09OpenCV\uFF0C\u7531BSD\u8BB8\u53EF\u8BC1\u53D1\u5E03\uFF0C\u53EF\u4EE5\u514D\u8D39\u5B66\u4E60\u548C\u5546\u4E1A\u4F7F\u7528\uFF0C\u63D0\u4F9B\u4E86\u5305\u62EC C/C++\u3001Python \u548C Java \u7B49\u4E3B\u6D41\u7F16\u7A0B\u8BED\u8A00\u5728\u5185\u7684\u63A5\u53E3\u3002OpenCV \u4E13\u4E3A\u8BA1\u7B97\u6548\u7387\u800C\u8BBE\u8BA1\uFF0C\u5F3A\u8C03\u5B9E\u65F6\u5E94\u7528\uFF0C\u53EF\u4EE5\u5145\u5206\u53D1\u6325\u591A\u6838\u5904\u7406\u5668\u7684\u4F18\u52BF\u3002

\u8FD9\u91CC\u5C31\u4EE5 OpenCV \u4E3A\u4F8B\uFF0C\u6765\u6F14\u793A\u4E00\u4E0B\u56FE\u50CF\u538B\u7F29\u3002\u5F53\u7136\u4E86\uFF0COpenCV \u7528\u6765\u538B\u7F29\u56FE\u50CF\u5C5E\u4E8E\u5178\u578B\u7684\u5927\u6750\u5C0F\u7528\u3002

\u7B2C\u4E00\u6B65\uFF0C\u6DFB\u52A0 OpenCV \u4F9D\u8D56\u5230\u6211\u4EEC\u7684\u9879\u76EE\u5F53\u4E2D\uFF0C\u4EE5 Maven \u4E3A\u4F8B\u3002

<dependency>
	<groupId>org.openpnp</groupId>
	<artifactId>opencv</artifactId>
	<version>4.5.1-2</version>
</dependency>

\u7B2C\u4E8C\u6B65\uFF0C\u8981\u60F3\u4F7F\u7528 OpenCV\uFF0C\u9700\u8981\u5148\u521D\u59CB\u5316\u3002

OpenCV.loadShared();

\u7B2C\u4E09\u6B65\uFF0C\u4F7F\u7528 OpenCV \u8BFB\u53D6\u56FE\u7247\u3002

Mat src = Imgcodecs.imread(imagePath);

\u7B2C\u56DB\u6B65\uFF0C\u4F7F\u7528 OpenCV \u538B\u7F29\u56FE\u7247\u3002

MatOfInt dstImage = new MatOfInt(Imgcodecs.IMWRITE_JPEG_QUALITY, 1);
Imgcodecs.imwrite("resized_image.jpg", sourceImage, dstImage);

MatOfInt \u7684\u6784\u9020\u53C2\u6570\u662F\u4E00\u4E2A\u53EF\u53D8\u53C2\u6570\uFF0C\u7B2C\u4E00\u4E2A\u53C2\u6570 IMWRITE_JPEG_QUALITY \u8868\u793A\u5BF9\u56FE\u7247\u7684\u8D28\u91CF\u8FDB\u884C\u6539\u53D8\uFF0C\u7B2C\u4E8C\u4E2A\u662F\u8D28\u91CF\u56E0\u5B50\uFF0C1-100\uFF0C\u503C\u8D8A\u5927\u8868\u793A\u8D28\u91CF\u8D8A\u9AD8\u3002

\u6267\u884C\u4EE3\u7801\u540E\u5F97\u5230\u7684\u56FE\u7247\u5982\u4E0B\u6240\u793A\uFF1A

\u501F\u8FD9\u4E2A\u673A\u4F1A\uFF0C\u6765\u5BF9\u6BD4\u4E0B OpenCV \u548C JDK \u539F\u751F API \u5728\u538B\u7F29\u56FE\u50CF\u65F6\u6240\u4F7F\u7528\u7684\u65F6\u95F4\u3002

\u8FD9\u662F\u6211\u672C\u673A\u7684\u914D\u7F6E\u60C5\u51B5\uFF0C\u65E9\u5E74\u4E70\u7684\u9876\u914D iMac\uFF0C\u4E5F\u662F\u6211\u7684\u4E3B\u529B\u673A\u3002\u4E00\u5F00\u59CB\u53EA\u6709 16 G \u5185\u5B58\uFF0C\u540E\u6765\u52A0\u4E86\u4E00\u4E2A 16 G \u5185\u5B58\u6761\uFF0C\u4E0D\u8FC7\u6700\u8FD1\u534A\u5E74\u7535\u8111\u7A81\u7136\u6B7B\u673A\u91CD\u542F\u7684\u9891\u7387\u660E\u663E\u63D0\u9AD8\u4E86\uFF0C\u4E0D\u77E5\u9053\u662F\u4E0D\u662F Big Sur \u8FD9\u4E2A\u64CD\u4F5C\u7CFB\u7EDF\u7684\u95EE\u9898\u8FD8\u662F\u7535\u8111\u786C\u4EF6\u8001\u4E86\u3002

\u7ED3\u679C\u5982\u4E0B\u6240\u793A\uFF1A

opencvCompress\u538B\u7F29\u5B8C\u6210\uFF0C\u6240\u82B1\u65F6\u95F4\uFF1A1070
jdkCompress\u538B\u7F29\u5B8C\u6210\uFF0C\u6240\u82B1\u65F6\u95F4\uFF1A322

\u538B\u7F29\u540E\u7684\u56FE\u7247\u5927\u5C0F\u5DEE\u4E0D\u591A\uFF0C\u90FD\u662F 19 KB\uFF0C\u5E76\u4E14\u8D28\u91CF\u56E0\u5B50\u90FD\u662F\u6700\u4F4E\u503C\u3002

\u56DB\u3001\u4E00\u70B9\u70B9\u5FC3\u58F0

\u7ECF\u8FC7\u4E0A\u9762\u7684\u6280\u672F\u5206\u6790\u540E\uFF0C\u76F8\u4FE1\u4F60\u4EEC\u90FD\u660E\u767D\u4E86\uFF0C\u628A1M\u56FE\u7247\u4F18\u5316\u5230100kb\u5B9E\u5728\u662F\u4E00\u4EF6\u201C\u4E0D\u592A\u5BB9\u6613\u201D\u7684\u4E8B\u60C5\u3002\u3002\u3002\u3002

100KB \u5F88\u5C0F\u4E86\u5427\uFF1F\u53EA\u6709\u539F\u6765\u7684 1/10\u3002

\u8981\u77E5\u9053\uFF0C\u6211\u53EF\u662F\u8FDE\u7EED\u52A0\u73ED\u4E86\u4E24\u5929\u4E24\u591C\uFF0C\u4E0D\u7720\u4E0D\u4F11\u3002

\u7D2F\u5230\u6700\u540E\uFF0C\u6211\u8DB4\u5728\u7535\u8111\u4E0A\u90FD\u7761\u7740\u4E86\u3002

\u6CA1\u60F3\u5230\u54C8\u5587\u5B50\u76F4\u63A5\u7ED9\u7535\u8111\u6574\u77ED\u8DEF\u4E86\uFF0C\u6211\u8FD9\u624D\u7B97\u662F\u4ECE\u68A6\u91CC\u9762\u5413\u9192\u6765\u4E86\uFF01

\u{1F614}\uFF0C\u751F\u6D3B\u4E0D\u6613\uFF0C\u4E14\u884C\u4E14\u73CD\u60DC\u5427~


\u672C\u7BC7\u5DF2\u6536\u5F55\u81F3 GitHub \u4E0A\u661F\u6807 1.6k+ star \u7684\u5F00\u6E90\u4E13\u680F\u300AJava \u7A0B\u5E8F\u5458\u8FDB\u9636\u4E4B\u8DEF\u300B\uFF0C\u636E\u8BF4\u6BCF\u4E00\u4E2A\u4F18\u79C0\u7684 Java \u7A0B\u5E8F\u5458\u90FD\u559C\u6B22\u5979\uFF0C\u98CE\u8DA3\u5E7D\u9ED8\u3001\u901A\u4FD7\u6613\u61C2\u3002\u5185\u5BB9\u5305\u62EC Java \u57FA\u7840\u3001Java \u5E76\u53D1\u7F16\u7A0B\u3001Java \u865A\u62DF\u673A\u3001Java \u4F01\u4E1A\u7EA7\u5F00\u53D1\u3001Java \u9762\u8BD5\u7B49\u6838\u5FC3\u77E5\u8BC6\u70B9\u3002\u5B66 Java\uFF0C\u5C31\u8BA4\u51C6 Java \u7A0B\u5E8F\u5458\u8FDB\u9636\u4E4B\u8DEF\u{1F604}\u3002

`,84),r={href:"https://github.com/itwanger/toBeBetterJavaer",target:"_blank",rel:"noopener noreferrer"},d=n("https://github.com/itwanger/toBeBetterJavaer"),m=a("p",null,"star \u4E86\u8FD9\u4E2A\u4ED3\u5E93\u5C31\u7B49\u4E8E\u4F60\u62E5\u6709\u4E86\u6210\u4E3A\u4E86\u4E00\u540D\u4F18\u79C0 Java \u5DE5\u7A0B\u5E08\u7684\u6F5C\u529B\u3002\u4E5F\u53EF\u4EE5\u6233\u4E0B\u9762\u7684\u94FE\u63A5\u8DF3\u8F6C\u5230\u300AJava \u7A0B\u5E8F\u5458\u8FDB\u9636\u4E4B\u8DEF\u300B\u7684\u5B98\u7F51\u7F51\u5740\uFF0C\u5F00\u59CB\u6109\u5FEB\u7684\u5B66\u4E60\u4E4B\u65C5\u5427\u3002",-1),k={href:"https://tobebetterjavaer.com/",target:"_blank",rel:"noopener noreferrer"},v=n("https://tobebetterjavaer.com/"),g=a("p",null,[a("img",{src:"https://img-blog.csdnimg.cn/img_convert/79995d0b7cca47da7c124bf1995a0d3b.png",alt:"image"})],-1),b=a("p",null,[a("em",null,"\u6CA1\u6709\u4EC0\u4E48\u4F7F\u6211\u505C\u7559\u2014\u2014\u9664\u4E86\u76EE\u7684\uFF0C\u7EB5\u7136\u5CB8\u65C1\u6709\u73AB\u7470\u3001\u6709\u7EFF\u836B\u3001\u6709\u5B81\u9759\u7684\u6E2F\u6E7E\uFF0C\u6211\u662F\u4E0D\u7CFB\u4E4B\u821F"),n("\u3002")],-1);function h(I,j){const s=p("ExternalLinkIcon");return o(),c("div",null,[u,a("p",null,[a("a",r,[d,e(s)])]),m,a("p",null,[a("a",k,[v,e(s)])]),g,b])}var y=t(l,[["render",h],["__file","image-yasuo.html.vue"]]);export{y as default};