
experience
文章平均质量分 62
专栏是笔者的一些感悟和工作中的经验.
赵广陆
优快云认证博客专家、优快云的Java领域优质创作者、全网30w+粉丝、超300w访问量、专注于大学生项目实战开发、讲解和答疑辅导、以及产品测评宣传、工具推广等合作。同时招收学生代理、校园代理,对于专业性数据证明一切!
展开
-
如何成为一个优秀的程序员?
目录1 靠谱的程序员2 解决问题的能力2.1 快速的定位2.2 深入分析2.3 取舍解决3 团队协作能力3.1 第一种模式:润滑剂模式3.2 第二种模式:全责模式3.3 第三种模式:混合模式4 自我驱动能力1 靠谱的程序员复盘一下近几年开发的历程,虽然说资历较浅,但是也要不断的自我反省和进步,从本质上来说,程序员的一个职业素养或者说优秀的程序员,简单来说就是两个字,靠谱。那你是否靠谱?决定了offer能否发放给你,你不会对我们的企业或者团队会有致命的一些伤害。那因此什么是代表的是你是一个靠谱的程序员原创 2022-05-19 14:05:48 · 873 阅读 · 0 评论 -
由浅入深理解TCP三次握手,为什么不是三次而不是二次或者四次呢?
目录1 预备知识1.1 IP协议1.2 TCP协议(传输控制协议)1.3 TCP报文头1.4TCP Flags:TCP控制位,由8个标志位来组成,每个标志位表示一个控制功能。2三次握手和四次挥手2.1 三次握手2.2 四次挥手3 备战面试面试题要说出这些3.1 面试官心里分析3.2tcp三次握手过程3.3为啥不是2次或者4次握手呢?3.4tcp断开连接的4次挥手1 预备知识1.1 IP协议IP协议是无连接的通信协议,他不会占用两个正...原创 2020-10-27 17:26:25 · 1159 阅读 · 0 评论 -
Java面试题日积月累(JavaSE40道)
目录1 lambda表达式2 equals与”==”的区别3声明4个变量Integer i =127,j=127,m=128,n=128;请问”i==j”与”m==n”的结果为什么?4 如何跳出多重for循环5 native修饰符是什么意思?6 &与&&的区别7 什么是强制(显示)类型转换、隐式类型转换8 jvm、jre、jdk的区别9 静态变量、静态代码块、静态方法、构造方法的执行顺序10 单例设计模式11 String、StringB.原创 2020-09-14 22:54:49 · 1198 阅读 · 1 评论 -
Java面试题日积月累(jsp/Servlet面试题20道)
目录1、jsp中两种注释的区别: 、<%--注释内容--%>2、如何修改tomcat端口号3、谈下什么是jsp指令、jsp脚本片断、jsp声明、jsp表达式(*)4、重定向与转发的区别(*)6、get与post请求的区别(*)7、文件存放在WEB-INF与WebContent(WebRoot)下的区别8、如何解决get请求与post请求中文乱码问题9、Servlet的生命周期(*)10、jsp与Servlet的区别(*)11、jsp中的9大内置对象12原创 2020-09-26 23:42:39 · 987 阅读 · 0 评论 -
Java面试题日积月累(SSM框架面试题22道)
目录1 springMVC1.1 springmvc的工作流程1.2 springMVC的主要组件1.3 springMVC常用的注解有哪些?都是用来做什么的?2 Spring2.1 简述Spring的AOP和IOC2.2 IOC容器对bean的生命周期2.3 使用spring框架能带来什么好处2.4 spring有几种配置方式?如何基于XML配置文件方式来配置spring?2.5 spring事务管理的方式有几种?2.6 Spring bean的作用域之间有什么原创 2020-09-28 00:01:39 · 1017 阅读 · 0 评论 -
Java面试题日积月累(数据库面试题30道)
目录1、数据库的3范式是什么?2、DDL、DML、DQL、DCL3、说一些数据库优化方面的经验?(*)5、mysql与oracle如何分页(*)6、GROUP BY...HAVING的作用7、排序与模糊查询8、内连接与外连接的区别(*)9、什么是存储过程?(oracle与mysql中的存储过程)(*)10、oracle中的序列是什么?11、oracle与mysql的区别(*)12、注册JDBC驱动程序的三种方式13、JDBC如何调用存储过程14、JDBC中原创 2020-11-22 22:44:16 · 1174 阅读 · 0 评论 -
Java面试题日积月累(WEB前端20道)
目录1、常见的HTML4/HTML5标签2、表格标签(行、列合并)3、frameset框架标签4、表单标签(*)5、什么是CSS?以及书写CSS样式的几种方式6、块级标签与行级标签7、盒子模型(*)8、CSS中的选择器(*)9、CSS3中的一些新特性10、display与visibility的区别11、相对定位与绝对定位(*)12、浮动13、Web的标准定义及3大组成部分14、BOM定义(*)15、DOM定义16、js语言特点17、js创建原创 2020-09-15 21:12:57 · 811 阅读 · 0 评论 -
Win11配置java环境变量
可能刚更新系统看到右键的界面有点懵或者直接搜索高级系统设置之后的操作就老样子了Java环境变量配置(win7+win10)原创 2021-11-07 17:38:52 · 1751 阅读 · 0 评论 -
Win11右键菜单还原Win10
每次都要展开很是反人类,难道是要我们用黑窗口操作吗?不得不说这个黑窗口还是下心血了.所以我看有的方法是删除注册表恢复win10的操作方法那么变成脚本就方便多了用法:复制下面脚本之后保存修改后缀为.batecho offcolor 1f:startclsecho,echo 修改右键菜单模式echo,echo 1 Windows 10 传统模式echo,echo 2 Windows 11 默认模式echo,echo,echo,echo 0 放弃修改原创 2021-11-07 15:57:15 · 1420 阅读 · 0 评论 -
解决Command line is too long. Shorten command line for ServiceStarter or also for Application报错
idea解决Command line is too long. Shorten command line for ServiceStarter or also for Application报错找到 .idea\workspace.xml;找到<component name="PropertiesComponent">,在里面添加<property name="dynamic.classpath" value="true" />即可今天发现有的时候不好使,有第二种方法:点击项原创 2021-06-25 22:42:21 · 2013 阅读 · 0 评论 -
程序猿的节日:1024,今天祝愿全球所有程序猿们、IT精英们节日快乐!
目录1 1024为什么是程序员节日2 程序员在你们的眼中可能是这样3 现实中的程序员1 1024为什么是程序员节日1024程序员节是广大程序员的共同节日。1024是2的十次方,二进制计数的基本计量单位之一。针对程序员经常周末加班与工作日熬夜的情况,部分互联网机构倡议每年的10月24日为1024程序员节,在这一天建议程序员拒绝加班。程序员就像是一个个1024,以最低调、踏实、核心的功能模块搭建起这个科技世界。1G=1024M,而1G与1级谐音,也有一级棒的意思。2 程序员在你们的眼中可能是这样原创 2020-10-24 19:24:18 · 1451 阅读 · 0 评论 -
Java基础知识日积月累(Tip of the Day30)
1.当异常保存文本文件切出去删除.swp文件即可2.创建快捷方式和windows快捷图标一样3.win+ctrl然后左右可以快速切换桌面用于虚拟机4.电脑中的多线程就是只要你切换的够快就看不出时单线程5.IO为什么输入输出将自己看为内存 因为jvm在内存中 我们写的东西要加载到内存中6.CentOS7常用命令7.基础知识8.面向对象知识9.常用的一些类10.异常处理11.集合与数据结构12.IO流13.线程总结原创 2020-10-20 23:48:39 · 779 阅读 · 0 评论 -
Java基础知识日积月累(Tip of the Day29)
目录1.Junit基本流程2.Log4J介绍3.记录器4.threshold门槛值大于等于才可输出5.输出模式6.单元测试执行流程7./***/文本注释便于显示一般在类和变量上8.CentOS文件夹描述9.打开一台虚拟机找vmx即可10.CRT仿真要选utf-8默认没有中文11.Ctrl+B退出当前账户12.sudo提高权限 su切换用户13.ps显示进程信息15.kill杀死进程16.reboot重启虚拟机 who查看谁在使用当前系统,公司使用不原创 2020-10-20 22:53:01 · 808 阅读 · 0 评论 -
Java基础知识日积月累(Tip of the Day28)
目录1.xml,html类文档按下Tab补全代码2.xml DOM解析还有SAX解析一行一行的3.DTD约束书写格式4.引入dtd方式5.引入xml约束文件 xsd约束6.枚举底层的实现是一个公共静态的常量对象7.所有单词转大写快捷键8.注解和注释9.自定义注解不手动给出默认值需要显示传参10.自动补全快捷键修改改为alt+/11.模拟Test注解12.元注解:描述注解的注解,元数据描述数据的数据,元就是最开始的描述后面相同的事物1.xml,html类文档原创 2020-10-20 22:25:35 · 737 阅读 · 0 评论 -
Java基础知识日积月累(Tip of the Day27)
目录1.在host配置的文件先进行访问之后到DNS服务器寻找然后解析ip地址2.网络编程三要素3.默认位上都是byte标示-127~128,192底层存储的是负数4.TCP交互的三层握手四次挥手简单理解5.一般没有构造方法的想使用对象只能创建静态方法返回对象6.用notepad++创建的txt有bom头很坑7.类加载器时机8.配置文件空指针异常一般就是编译目录没有9.反射获取构造方法10.暴利反射推荐全部加上11.反射获取值不一定非要反射创建构造方法创建对象去获取原创 2020-10-20 20:50:29 · 711 阅读 · 0 评论 -
Java基础知识日积月累(Tip of the Day26)
目录1.jdk1.7和1.8CurrentHashMap添加元素过程2.线程的状态3.虚拟机中线程状态4.线程池5.线程池一般不做销毁6.concurrent包下的类都是线程安全的7.创建线程池对象8.数据可见性问题解释9.同步代码块Sync运行方式,变量副本就是锁10.原子性问题在i++和++i内存要有好几部进行产生11.轻量级锁解决原子性问题12.轻量级锁CAS和重量级锁Sync的区别13.并发工具类14.ctrl+h直接查看继承关系15.等原创 2020-10-20 20:31:21 · 690 阅读 · 0 评论 -
Java基础知识日积月累(Tip of the Day25)
目录1.实现关系没有继承关系的耦合2.实现多线程方式的比较3.获取和设置线程名称4.当方法有native修饰是去调用系统方法,也就是用c语言交互5.线程之间如果没有锁会相互干扰6.同步代码块7.锁要一直才可以保护线程运行不一样锁也没用8.锁必须唯一并且共享9.synchronized修饰的方法一般都是线程安全的10.同步方法的锁对象11.等待会进入唤醒池等待其他线程唤醒1.实现关系没有继承关系的耦合2.实现多线程方式的比较3.获取和设置线程名称原创 2020-10-10 20:53:51 · 759 阅读 · 0 评论 -
Java基础知识日积月累(Tip of the Day24)
目录1.文件修改后想切回到最初可以查看历史2.汉字存储的过程3.字节流读取文本文件乱码问题4.字符流就是字节流和码表的组合,中文在码表中是负数站三个字节5.字符流6.字符流写数据7.Arrays的sort可以重写Comparator接口命名规则8.转换流可以指定编码10.遇到异常可以去API查找11.后面的序列化id不给了,需要字节给出格式去别的类找12.加载配置文件方法13.无效的目标发行版本,说明版本不统一1.文件修改后想切回到最初可以查看历史原创 2020-10-10 20:14:44 · 667 阅读 · 0 评论 -
Java基础知识日积月累(Tip of the Day23)
目录1.可变参数2.创建不可变集合3.Stream流的常见中间方法4.Stream流操作数据的方法5.Stream流常见获取方式6.如何看类之间的关系7.实现序列化接口都是有固定的id值8.递归删除文件9.如果不传入偏移量会出现内存还有数据,造成输出错误10.字节缓冲流11.加缓冲流增强了两边但是内存并没有优化,需要小数组缓冲12.字节流13.可以将变量添加debug分析14.阴影到哪里是将要执行的代码,不是运行了的代码15.java中的读写都是自原创 2020-10-10 19:56:08 · 640 阅读 · 0 评论 -
Java基础知识日积月累(Tip of the Day22)
目录1.不用new方式定义字符==相等但是是在常量池地址相同2.正则表达式一个中括号就是一个值,里面放几个就是进行匹配的3.{}大括号代表前面中括号的次数,就是有几个4.使用正则表达式的好处5.{}大括号可以传两个参数代表上下线也就是5-12位6.* + ?在正则表达式的作用7.可以使用或进行选择8.正则表达式有预定义的字符9.正则表达式的定义及使用10.正则表达式遇到点的切割11.正则表达式遇到空格的切割12.正则表达式切割时稳定形式1.不用new方式定原创 2020-10-02 17:36:12 · 857 阅读 · 0 评论 -
Java基础知识日积月累(Tip of the Day21)
目录1.ctrl+f12查找源码快捷键,出来界面直接输入即可2.HashMap和TreeMap是HashSet和TreeSet的底层,去掉一列即可实现3.Map的遍历4.哈希表结构,一般作为底层5.Collection特点与方法,方法继承的都可以使用6.List知识点集合7.数组链表作为ArrayList和LinkedList底层8.Set知识点集合9.Map知识点集合1.ctrl+f12查找源码快捷键,出来界面直接输入即可2.HashMap和TreeMap是原创 2020-09-30 20:55:20 · 798 阅读 · 0 评论 -
Java基础知识日积月累(Tip of the Day20)
目录1.泛型的概述2.泛型的类型3.不一定非要new才能穿对象,返回值是对象即可,传入后多态4.传入的时候T是变量,使用创建时是一个类型5.泛型方法中的只是一个申明6.通配符的特殊性7.Set集合的概述8.迭代器使用两次后就会跳过某个元素9.TreeSet使用时有自带的,但是自己的类就要实现接口才可以使用10.观察源码是要清楚注意谁在调用方法谁在定义方法1.泛型的概述2.泛型的类型3.不一定非要new才能穿对象,返回值是对象即可,传入后多态原创 2020-09-27 23:51:25 · 1852 阅读 · 0 评论 -
Java基础知识日积月累(Tip of the Day19)
目录1.集合大家族2.集合删除需要退位3.集合删除的底层源码解析4.链表删除的底层解析5.集合变量的三种场景6.list集合的特点7.链表判断从那边开始找值8.集合在强转调方法需要加括号才是一个强转体9.增强for循环修改的值是第三方地址1.集合大家族2.集合删除需要退位3.集合删除的底层源码解析4.链表删除的底层解析5.集合变量的三种场景6.list集合的特点7.链表判断从那边开始找值8.集合在强转调方法需原创 2020-09-26 23:26:00 · 790 阅读 · 0 评论 -
Java基础知识日积月累(Tip of the Day18)
目录1.Collection的removeif方法的使用2.collection集合的remove方法只能删除一个3.collection集合removeif可以删除多个4.removeif可以放的参数也就是实现类,判断条件后删除5.迭代器遍历6.迭代器小结7.在集合删除时需要向前移动防止重复的删不掉,remove删除的是整个元素8.增强for循环遍历,不能删除集合因为不能同时查看同时删除,并发异常9.增强for循环总结10.增强for循环修改的值是第三方变量1.原创 2020-09-26 23:17:32 · 838 阅读 · 0 评论 -
Java基础知识日积月累(Tip of the Day17)
目录1.jdk8以前jdk8以后的时间类的操作2.参数要的是string的父类对象,子类也可以是多态的使用3.jdk8常见时间类4.常见时间类的转换5.jdk8LocalDateTime小结,不是new对象需要now和of创建6.异常家族和异常分类7.异常处理机制8.throws和throw两码事儿一个就是光说抛出去异常,一个是创建异常9.ctrl+alt+t快捷生成异常10.手动解决异常在处理完异常会继续运行1.jdk8以前jdk8以后的时间类的操作原创 2020-09-25 23:42:32 · 780 阅读 · 0 评论 -
Java基础知识日积月累(Tip of the Day16)
目录1.递归思想2.递归的规则就是不断的靠近出口3.变量调方法有返回值直接.sout可以打印4.Objects辅助object工具类使用5.Arrays辅助工具类方法快排修改的是对象不需要返回值6.工具类的常见模板7.时间小结8.Date老版本的使用9.常用时间类模板需要的字母10.模板类小结1.递归思想2.递归的规则就是不断的靠近出口3.变量调方法有返回值直接.sout可以打印4.Objects辅助object工具类使用5.A原创 2020-09-25 23:21:50 · 786 阅读 · 0 评论 -
Java基础知识日积月累(Tip of the Day15)
目录1.Ctrl+alt+t产生对语句循环异常各种嵌套快捷语句2.Ctrl+p看方法有几个参数3.两下table回车生成无参4.alt+7看源码中的方法5.写类名方法名不能写一起6.空指针异常7.BigDecimal超级精确的浮点数8.包装类就是把int装起来,拆箱装箱就好理解了9.int->String,String->int的转换方法10.Shift+f6修改所有i变量1.Ctrl+alt+t产生对语句循环异常各种嵌套快捷语句不过我改成alt+原创 2020-09-25 23:04:08 · 726 阅读 · 0 评论 -
Java基础知识日积月累(Tip of the Day14)
目录1.成员内部类的介绍2.内部静态,外部不是静态还需要创建对象才可以访问3.匿名内部类实现了很多东西,继承和重写4.Lambda的标准形式5.Lambda表达式在接口中相当于的位置6.Lambda表达式某些情况可以省略的东西7.lambda和匿名内部类的区别8.匿名内部类还是lambda都是相当于子类的对象1.成员内部类的介绍2.内部静态,外部不是静态还需要创建对象才可以访问这里好像写反了,疑惑了一下.3.匿名内部类实现了很多东西,继承和重写原创 2020-09-23 23:48:08 · 802 阅读 · 0 评论 -
Java基础知识日积月累(Tip of the Day13)
目录1.多态的介绍2.多态在内存的展现3.多态的好处弊端4.向下转型为了调用子类方法5.转型风险6.多态的好处7.接口和类相对1.多态的介绍2.多态在内存的展现3.多态的好处弊端4.向下转型为了调用子类方法5.转型风险6.多态的好处7.接口和类相对...原创 2020-09-22 23:20:21 · 763 阅读 · 0 评论 -
Java基础知识日积月累(Tip of the Day12)
目录1.实现可以多实现,相当于有多个干爹2.JDK8接口发生了巨变3.接口注意事项4.接口的静态方法注意事项5.内部类为内部服务不需要提供外部访问6.接口使用的思路7.类和接口关系8.亲爹的方法永远是最香的,先运行9.类和接口关系图10.多态访问成员的特点1.实现可以多实现,相当于有多个干爹2.JDK8接口发生了巨变3.接口注意事项4.接口的静态方法注意事项5.内部类为内部服务不需要提供外部访问6.接口使用的思路7.原创 2020-09-22 23:02:35 · 855 阅读 · 0 评论 -
Java基础知识日积月累(Tip of the Day11)
目录1.抽象类概述2.抽象类的特点3.代码块的分类4.代码运行顺序5.抽象类的普通方法子类可以直接访问6.final和abstract是一对相反的词不能同时有7.继承的话必须有自己的构造方法,父类的继承过来也没用8.如果没有最终继承的object类就会报错9.抽象类小结1.抽象类概述2.抽象类的特点3.代码块的分类4.代码运行顺序5.抽象类的普通方法子类可以直接访问6.final和abstract是一对相反的词不能同时有抽象原创 2020-09-22 22:42:35 · 857 阅读 · 1 评论 -
Java基础知识日积月累(Tip of the Day10)
目录1.寻找属性值如果没有就向上原则,如果有就就近原则2.super和this的用法3.方法重写的注意事项4.this和super的访问格式5.权限修饰符6.继承中的构造方法都有super7.jdk省略的东西8.super和this必须放在第一行9.super关键字内存中的作用10.java开闭原则设计和高内低耦1.寻找属性值如果没有就向上原则,如果有就就近原则2.super和this的用法3.方法重写的注意事项4.this和super的访原创 2020-09-22 21:55:52 · 745 阅读 · 0 评论 -
Java基础知识日积月累(Tip of the Day09)
目录1.git常用命令2.通过唯一标示切换版本3.git分支操作4.git生成公钥为了和远程仓库建立连接5.推送至远程仓库6.本地啥也没有,先克隆7.git常规操作8.分类分包思想,专人干专事儿,写代码,看代码清爽1.git常用命令2.通过唯一标示切换版本3.git分支操作4.git生成公钥为了和远程仓库建立连接5.推送至远程仓库通过推送将自己的本地仓库全部推送至远程仓库,然后还要告诉推送到那个分支6.本地啥也没有,先克隆原创 2020-09-18 22:59:08 · 780 阅读 · 0 评论 -
Java基础知识日积月累(Tip of the Day08)
目录1.git中各个工具的功能理解2.git的流程3.git产生冲突的原因4.上传的git是不可删除的,因为需要究其责任5.oring只是为了起别名方便操作6.static关键字使用事项7.如果不同包相同类这么处理8.分包分类思想的运行流程1.git中各个工具的功能理解2.git的流程3.git产生冲突的原因引起冲突的话首先是沟通,最主要的因素就是差版本,也就是别人提前写好了,我也写了但是有不一样的地方需要沟通。4.上传的git是不可删除的,因原创 2020-09-18 11:57:31 · 777 阅读 · 1 评论 -
Java基础知识日积月累(Tip of the Day07)
目录1.江湖规矩将封装好的对象放domain2.自己写的类也可以是数组类型存储的是地址3.集合和数组的区别还有集合长度和容量的区别4.集合使用原则5.方法抽取时的参数列表要看传入方法的数据6.常量字符串一般放前面比较避免空指针异常7.remove删除的漏洞8.后续继续写标记备注9.将引用数据类型提到外面可以提高访问权限1.江湖规矩将封装好的对象放domain2.自己写的类也可以是数组类型存储的是地址3.集合和数组的区别还有集合长度和容量的区别4原创 2020-09-11 18:43:51 · 627 阅读 · 0 评论 -
Java基础知识日积月累(Tip of the Day06)
目录1.字符串数组和字符数组的转换2.字符调用的length是属性,而字符串调用的是方法3.调用方法长度可以直接fori生成循环遍历4.String常用方法5.Ctrl+Alt+m可以快速将代码抽取成一个方法6.StringBuilder使用拼接返回的是本身的地址,所以最后拼接也是原地址7.String和StingBuilder拼接速度比较底层解析8.String到StringBuilder的相互转换9.StringBuildder的toString方法会新建一个Str.原创 2020-09-09 19:36:45 · 667 阅读 · 0 评论 -
Java基础知识日积月累(Tip of the Day05)
1.当参数或局部变量与成员变量同名时选择就近原则2.this就是对象的地址,谁调就是谁3.动态初始化对象与静态初始化对象4.构造生成全选可以Ctrl+A5.通过构造方法来创建对象6.API和API文档是两回事7.变量与常量字符串的拼接本质8.全是常量在运算时有常量优化机制...原创 2020-09-08 23:43:45 · 655 阅读 · 0 评论 -
Java基础知识日积月累(Tip of the Day04)
目录1.自己定义的某一类时为什么没有main方法2.main方法一般都是测试类3.new出来的对象方法去方法区去寻找4.再次new一个对象类只加载一次5.当一块内存地址断掉之后或者说方法弹栈new出来的内存就会变为垃圾6.成员变量和局部变量1.自己定义的某一类时为什么没有main方法2.main方法一般都是测试类3.new出来的对象方法去方法区去寻找4.再次new一个对象类只加载一次5.当一块内存地址断掉之后或者说方法弹栈new出来的内存就会变..原创 2020-09-08 22:57:43 · 626 阅读 · 0 评论 -
Java基础知识日积月累(Tip of the Day03)
目录1.数组的变量名开辟的空间存储的是数组内存地址2.数组变量快捷语句a.fori3.数组在索引时前面不需要再声明int4.栈内存(一般很容易溢出所以不存储数据,而较快的处理速度可以处理方法)5.有结束条件后面不能再去放语句因为运行不到6.Debug常用快捷键7.其实Debugger就想一个堆栈查询的过程8.-128为1000 0000不是1111 11111.数组的变量名开辟的空间存储的是数组内存地址2.数组变量快捷语句a.fori3.数组在索引时前面不原创 2020-09-06 10:49:42 · 640 阅读 · 0 评论 -
Java基础知识日积月累(Tip of the Day02)
目录1.if语句的江湖规则2.switch后续字符串也可匹配3.switch和for循环的选择4.dowhile和while的区别5.switch想跳出循环使用标号6.随机数如何某个范围生成7.IDEA的包折叠展开取消勾选即可8.分别IDEA文件是项目还是模块看项目中是否有.idea1.if语句的江湖规则2.switch后续字符串也可匹配3.switch和for循环的选择4.dowhile和while的区别5.switch想跳出循环使用..原创 2020-09-06 10:11:22 · 653 阅读 · 0 评论