![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
程序员
文章平均质量分 86
普通网友
这个作者很懒,什么都没留下…
展开
-
Flutter 可以缩放拖拽的图片,程序员翻身之路
我最近从朋友那里收集到了2020-2021BAT 面试真题解析Android 基础、Java 基础、Android 源码相关分析、常见的一些原理性问题等等,可以很好地帮助大家深刻理解Android相关知识点的原理以及面试相关知识。这份资料把大厂面试中常被问到的技术点整理成了PDF,包知识脉络 + 诸多细节;还有 高级架构技术进阶脑图 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。这里也分享给广大面试同胞们,希望每位程序猿们都能面试成功~点击直达GitHub。原创 2024-03-26 03:03:18 · 914 阅读 · 0 评论 -
CGBTN2111-DAY11总结复习,hibernate与mybatis面试题
int hashCode() 返回此字符串的哈希码。boolean equals(Object anObject) 将此字符串与指定的对象比较,比较的是重写后的串的具体内容String toString() 返回此对象本身(它已经是一个字符串!小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!原创 2024-03-26 00:48:12 · 538 阅读 · 0 评论 -
Android进阶之光读书笔记——第一章,Android高级工程师进阶学习
本文在开源项目GitHub中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…对你有帮助,可以添加下面V无偿领取!(备注Android)**[外链图片转存中…(img-U4wPsa2a-1711376873195)]本文在开源项目GitHub中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…[外链图片转存中…(img-tF4DO1Ay-1711376873196)]原创 2024-03-25 22:28:02 · 809 阅读 · 0 评论 -
Android开发必会App启动优化,腾讯T3大牛亲自教你
针对项目中的启屏广告业务,通过ViewStub延后他们的初始化,在需要显示的时候通过ViewStub的inflate显示真正的view,优化如下。废弃之前的启屏页UI布局,直接使用先前自定义好的welcome_layler_drawable作为启屏页背景。,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…android:text=“跳过 3”android:text=“跳过 3”原创 2024-03-25 16:09:09 · 929 阅读 · 0 评论 -
android中的数据库操作,Android校招面试指南
其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。上面分享的腾讯、头条、阿里、美团、字节跳动等公司2019-2021年的高频面试题,博主还把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,上面只是以图片的形式给大家展示一部分。Android学习PDF+学习视频+面试文档+知识点笔记【Android思维脑图(技能树)】原创 2024-03-25 08:21:04 · 528 阅读 · 0 评论 -
Android 显示Gif 动态图片(1),2024年GitHub上那些优秀Android开源库总结
对程序员来说,很多技术的学习都是“防御性”的。也就是说,我们是在为未来学习。我们学习新技术的目的,或是为了在新项目中应用,或仅仅是为了将来的面试。但不管怎样,一定不能“止步不前”,不能荒废掉。!文章以下内容会给出阿里与美团的面试题(答案+解析)、面试题库、Java核心知识点梳理等,需要这些文档资料的,直接点击我的GitHub免费领取~[外链图片转存中…(img-yzE7FDsm-1711298352608)][外链图片转存中…(img-mNd7wIwc-1711298352608)]原创 2024-03-25 00:39:23 · 1016 阅读 · 0 评论 -
Android mvvm 之 LiveData 的原理,2024我的Android大厂面试之旅
试想,如果一个 Observer 同时绑定两个 LifecycleOwner:L1 和 L2,假如 L1 处于 RESUMED 的状态,而 L2 处于 DESTROYED 的状态,那么 LiveData 将无所适从:如果遵循 L1 的状态,将变化通知给 Observer,则更新 L2 会出错;2020年虽然路途坎坷,都在说Android要没落,但是,不要慌,做自己的计划,学自己的习,竞争无处不在,每个行业都是如此。相信自己,没有做不到的,只有想不到的。希望这份系统化的技术体系对大家有一个方向参考。原创 2024-03-24 22:30:43 · 699 阅读 · 0 评论 -
5G时代风口浪尖上的音视频开发技术,你还在观望吗?保姆级Android音视频开发学习一篇就够
读取音视频文件并解码订阅流媒体服务器上的流支持音频输入的网络摄像机(支持RTSP协议)支持音频输入的视频采集卡在手机上,操作系统的SDK会提供相关的音视频采集接口视频渲染一般需要了解OpenGL,而音频渲染需要了解OpenAL可以通过开源库SDL来快速实现渲染模块在Windows下使用DirectShow框架,操作系统提供了对应的视频和音频渲染模块(通过GraphEdit可以看到)在DirectShow中渲染器会涉及到音视频同步的策略,当然,也完全可以自己去实现音视频同步模块。原创 2024-03-24 20:09:04 · 594 阅读 · 0 评论 -
2024中级Android开发面试解答之线程篇,顺利收获Offer
当需要使用多线程时,有个变量恰巧不需要共享,此时就不必使用synchronized这么麻烦的关键字来锁住,每个线程都相当于在堆内存中开辟一个空间,线程中带有对共享变量的缓冲区,通过缓冲区将堆内存中的共享变量进行读取和操作,ThreadLocal相当于线程内的内存,一个局部变量。并不会像synchronized那样修改主内存的数据,再将主内存的数据复制到线程内的工作内存。综上得出,多线程不一定能提高效率,在内存空间紧张的情况下反而是一种负担,因此在日常开发中,应尽量。如果你有需要的话,可以。原创 2024-03-24 17:34:52 · 588 阅读 · 0 评论 -
“HUAWEI(1),赶紧收藏
三面问题更为细致了,考察项目经验更多·Java内存模型·full gc怎么触发·gc算法·JVM回收策略·ClassLoader原理和应用·高吞吐量的话用哪种gc算法·ConcurrentHashMap和HashMap·volatile的底层如何实现,怎么就能保住可见性了?·有参与过开源的项目吗?·线程池原理,拒绝策略,核心线程数·1亿个手机号码,判断重复·线程之间的交互方式有哪些?有没有线程交互的封装类华为Java4面 · .原创 2021-08-10 18:57:50 · 220 阅读 · 0 评论 -
Zookeeper,Java高级程序员的要求
Zookeeper 是 Apache Hadoop 项目下的一个子项目,是一个树形目录服务。Zookeeper 翻译过来就是 动物园管理员,他是用来管 Hadoop(大象)、Hive(蜜蜂)、Pig(小 猪)的管理员。简称zkZookeeper 是一个分布式的、开源的分布式应用程序的协调服务。Zookeeper 提供的主要功能包括:配置管理分布式锁集群管理2、Zookeeper命令操作================1、Zookeeper 数据模型ZooKeep原创 2021-08-10 18:56:41 · 228 阅读 · 0 评论 -
ZooKeeper的十二连问,你顶得了嘛,搞定kafka看这一篇就够了
Watcher机制监听机制的工作原理Watcher特性总结Watcher监听机制Zookeeper 允许客户端向服务端的某个Znode注册一个Watcher监听,当服务端的一些指定事件触发了这个Watcher,服务端会向指定客户端发送一个事件通知来实现分布式的通知功能,然后客户端根据 Watcher通知状态和事件类型做出业务上的改变。可以把Watcher理解成客户端注册在某个Znode上的触发器,当这个Znode节点发生变化时(增删改查),就会触发Znode对应的注册事件,注册的客户端就会收.原创 2021-08-10 18:55:26 · 253 阅读 · 0 评论 -
ZooKeeper实现生产-消费者队列,Java后端开发面试
} else if (Event.EventType.NodeChildrenChanged.equals(event.getType())) {processNodeChildrenChanged(event);}}以ZooKeeperBarrier为例,看看重构之后的构造函数和监听Event的代码 ZooKeeperBarrier(String address, String tableSerial, int tableCapacity, String customerName)throw原创 2021-08-10 18:54:14 · 171 阅读 · 0 评论 -
windows10 JDK环境变量的配置,推荐学习
之后会弹出系统属性的窗口,单单击环境变量在系统变量下新建JAVA_HOME的变量名并写入所需JDK所安装的位置并点击确定然后在系统变量下再新建一个变量名为CLASSPATH 变量值为“%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;.”(这里是没有引号的)的系统变量并点击确定接着我们选择系统变量下的Path点击编辑最后我们新建一个名为%JAVA_HOME%\bin的环境变量然后把所有窗口的确定都点一遍!!.原创 2021-08-10 18:53:04 · 69 阅读 · 0 评论 -
VBA常用语法,2019-2021历年阿里Java面试真题
//获取单元格背景色Range(“A1”).Interior.ColorIndex//设置单元格背景颜色For Each item In Range(Range(“A1”), Range(“H10”))If item.value = 0 Then item.Interior.ColorIndex = 10ElseIf item.value = 1 Then item.Interior.ColorIndex = 11End IfNext//赋值Dim a As rangeS原创 2021-08-10 18:51:57 · 332 阅读 · 0 评论 -
toString()、String,2021最新大厂Java面经
instanceof判断2、封装类型(1)toString ok(2)String.valueOf()自然也是可以的。(3)封装类型也无法强转3、null值问题(1)toString()报空指针异常(2)String.valueOf()返回字符串“null”(3)null值强转成功三、源码分析1、toString()2、String.valueOf()String.valueOf()比toString多了一个非空判断。四、总结1、toString(),可能原创 2021-08-10 18:50:44 · 118 阅读 · 0 评论 -
tomcat架构解析文档,【恋上数据结构
分为内部节点(非叶子)、叶子节点 2 种节点;内部节点只存储 key,不存储具体数据叶子节点存储 key 和具体数据所有的叶子节点形成一条有序链表;m 阶 B+树 非根节点的元素数量 x:┌ m/2 ┐ ≤ x ≤ m关于MySQL发音的官方说明https://dev.mysql.com/doc/refman/8.0/en/what-is-mysql.htmlThe official way to pronounce “MySQL” is “My Ess Que E..原创 2021-08-10 18:49:31 · 86 阅读 · 0 评论 -
【PyQt5 知识点示例代码,直击HashTable的源码
# 设定窗口的位置和大小 self.setGeometry(300, 300, 320, 160) self.setWindowTitle('请单击关闭按钮') self.show()def closeEvent(self, event): reply = QMessageBox.question(self, '提示信息', '确认要关闭窗口?', ...原创 2021-08-09 19:29:56 · 105 阅读 · 0 评论 -
【MySQL,字节跳动Java社招
幻读是指事务读取某个范围的数据时,因为其他事务的操作导致前后两次读取的结果不一致。幻读和不可重复读的区别在于,不可重复读是针对确定的某一行数据而言,而幻读是针对不确定的多行数据。因而幻读通常出现在带有查询条件的范围查询中三、事务隔离级别1、读未提交(READ UNCOMMITTED)可能产生脏读、不可重复读、幻读2、读已提交(READ COMMITTED)避免了脏读,可能产生不可重复读、幻读3、可重复读(REPEATABLE READ)(mysql默认隔离级别)避免了脏读,不可重复读。通过区间原创 2021-08-09 19:28:51 · 94 阅读 · 0 评论 -
【MyBatis 5,Java多线程面试题总结
SqlSession openSession();//这个方法最经常用,用来创建SqlSession对象.SqlSession openSession(boolean autoCommit);SqlSession openSession(Connection connection);SqlSession openSession(TransactionIsolationLevel level);SqlSession openSession(ExecutorType execType);SqlSess原创 2021-08-09 19:27:37 · 93 阅读 · 0 评论 -
【MyBatis 5(1),netty框架教程
本文这种介绍一下两者的概念和使用。一、 SqlSessionFactorySqlSessionFactory是MyBatis的关键对象,它是个单个数据库映射关系经过编译后的内存镜像,SqlSessionFactory对象的实例可以通过SqlSessionFactoryBuilder对象类获得,而SqlSessionFactoryBuilder则可以从XML配置文件或一个预先定制的Configuration的实例构建出SqlSessionFactory的实例。每一个MyBatis的应用程序都以一个Sql原创 2021-08-09 19:26:31 · 184 阅读 · 0 评论 -
【MyBatis 4,网易架构师深入讲解Java开发
<if test="password != null">password=#{password},</if> <if test="email != null">email=#{email},</if> <if test="address != null">ddress=#{ddress}</if></trim>where id=#{id}### 4、ifSELECT * FROM..原创 2021-08-09 19:25:21 · 79 阅读 · 0 评论 -
【MyBatis 2】MyBatis-Plus
MyBatis-Plus(简称MP),是mybatis的增强工具,在mybatis的基础上只做增强不做改变,为简化开发,提高效率而生。二、优点1、无侵入MyBatis-Plus在MyBatis的基础上进行扩展,只做增强不做改变,引入MyBatis-Plus不会对现有的MyBatis框架产生任何影响,而且MP支持所有MyBatis原生的特性。2、依赖少仅仅依赖MyBatis以及MyBatis-Spring3、损耗小启动即会注入基本CRUD,性能基本无损耗,直接面向对象操作4、预防SQL注入.原创 2021-08-09 19:24:15 · 202 阅读 · 0 评论 -
动手造轮子:实现一个简单的-AOP-框架,想搞定大厂面试官
MethodInfo ProxyMethod { get; }object ProxyTarget { get; }MethodInfo Method { get; }object Target { get; }object[] Arguments { get; }Type[] GenericArguments { get; }object ReturnValue { get; set; }Dictionary<string, object> Properties {原创 2021-08-08 23:30:58 · 100 阅读 · 0 评论 -
前端,字节跳动历年校招Java面试真题解析
基本语法=====注释–输入输出语句输入框 prompt(“提示内容”);弹出警告框 alert(“提示内容”);控制台输出 console.log(“显示内容”);页面内容输出 document.write(“显示内容”);变量和常量java是弱类型语言,定义变量时不需要区分数据类型原始数据局类型=======typeof算数运算符&赋值运算符&比较&逻辑运算符==========================.原创 2021-08-08 23:28:38 · 95 阅读 · 0 评论 -
刷完这套阿里面试真题,大厂 offer 拿来吧你,美团Java面试流程
14. 查询语句不同元素(where、jion、limit、group by、having等等)执行先后顺序15. 数据库崩溃时事务的恢复机制(REDO日志和UNDO日志)Redis=========1. Redis如何做高可用、集群2.Redis和Memcached的优劣势比较3.Redis的数据存储类型有哪些?4.Redis的应用场景有哪些?5. Redis的持久化方式,以及项目中用的哪种6.Redis的缓存雪崩怎么解决?7.Redis与数据库MySQL的双写一致如何解决?8.Re原创 2021-08-08 23:27:27 · 101 阅读 · 0 评论 -
别以为线程池很简单,来回答下这些问题,阿里云Java面试
new NamedThreadFactory(“demo-work”)它的实现还是很巧妙的,有兴趣地可以看看它的源码,每调用一次,底层有个计数器会加一,会依次命名为 「demo-work-thread-1」, 「demo-work-thread-2」, 「demo-work-thread-3」这样递增的字符串。在实际的业务场景中,一般很难确定 corePoolSize, workQueue,maximumPoolSize 的大小,如果出问题了,一般来说只能重新设置一下这些参数再发布,这样往往原创 2021-08-08 23:26:14 · 148 阅读 · 0 评论 -
初次面试蚂蚁金服,尚硅谷docker笔记
HTTP 有哪些问题,加密算法有哪些,针对不同加密方式可能产生的问题,及其 HTTPS 是如何保证安全传输的蚂蚁金服二面设计模式有哪些大类,及熟悉其中哪些设计模式volatile 关键字,它是如何保证可见性,有序性Java 的内存结构,堆分为哪几部分,默认年龄多大进入老年代ConcurrentHashMap 如何保证线程安全,jdk1.8 有什么变化为什么 ConcurrentHashMap 底层为什么要红黑树如何做的 MySQL 优化讲一下 oom 以及遇到这种情况怎么处理的,是否使.原创 2021-08-08 23:23:49 · 150 阅读 · 0 评论 -
初次走上技术管理岗位的思考总结,Java工程师进阶路线
时间管理走上了管理岗位,沟通工作多了,会议也多了,自己亲手做事的时间少了。如果总是觉得时间不够用,但是又不知道时间花到哪儿去了,这就需要时间管理。越是任务繁杂,时间管理就越重要,分享几点经验:每日都列任务清单:根据事情轻重缓急,列出今日必做清单、明日待办清单。今日必做的事情加班都要完成。自己做还是授权做:有效的授权是管理者必须掌握的技能,它不但可以节省管理者的时间,更重要的是可以培养员工,使他们承担责任和压力,快速成长起来。预估事情完成时间和资源:很多事情不是孤立存在的,需要外部资源支持。预估完成原创 2021-08-08 23:22:38 · 126 阅读 · 0 评论 -
Tencent后台开发Java岗二面,2年5个月13天
4.讲讲JVM的类加载过程&&双亲委派模型。5.谈谈Java的垃圾回收算法。6.谈谈Java垃圾回收的触发条件。7.synchronized和Lock的区别。8.volatile的作⽤,为什么会出现变量读取不⼀致的情况,与 synchronized 的区别?9.++i 在多线程环境下是否存在问题,怎么解决?10.讲一讲Thread.sleep() 和 Thread.yield() 区别?11.讲讲常⽤的容器类?12.如何去除 ArrayList 的重复元素?直接采⽤ Ha原创 2021-08-06 13:07:12 · 118 阅读 · 0 评论 -
Spring中经典的9种设计模式,一定要记牢,牛逼轰轰!
面向对象和面向过程的区别?Java 语言有哪些特点?关于 JVM JDK 和 JRE 最详细通俗的解答Oracle JDK 和 OpenJDK 的对比Java 和 C++的区别?什么是 Java 程序的主类?应用程序和小程序的主类有何不同?Java 应用程序与小程序之间有哪些差别?字符型常量和字符串常量的区别构造器 Constructor 是否可被 override?重载和重写的区别?Java 面向对象编程三大特性: 封装 继承 多态String StringBuffer 和 Str.原创 2021-08-06 13:06:08 · 187 阅读 · 0 评论 -
springmvc面试题2020,IDEA太强悍了
使用CPU 调试器进行性能分析的时候呢,可以通过隐藏一些方法啊什么的,或者只关注某个调用节点下的方法,来提供更高关注度的分析。提供了四个选项:只关注子集调用只关注本调用屏蔽子集调用屏蔽本调用另外,IDEA 允许你绕过递归,让你能够进行更专注的性能分析5、支持读取内存快照文件IDEA 现在支持打开 hprof 文件,也就是内存快照文件,并且打开内存快照文件不会占用你太多的内存,如果你要打开这种文件,你需要如图所示打开后呢,是这样的就是暂时呢,只能进行简单的分析,原创 2021-08-06 13:05:02 · 116 阅读 · 0 评论 -
springmvc源码解析pdf,大型网站系统架构的演化
三、利用缓存改善网站性能在硬件优化性能的同时,同时也通过软件进行性能优化,在大部分的网站系统中,都会利用缓存技术改善系统的性能,使用缓存主要源于热点数据的存在,大部分网站访问都遵循28原则(即80%的访问请求,最终落在20%的数据上),所以我们可以对热点数据进行缓存,减少这些数据的访问路径,提高用户体验。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jBhYdmxa-1628226212678)(https://images0.cnblogs.com/blog/35251原创 2021-08-06 13:03:50 · 195 阅读 · 0 评论 -
springmvc基础面试题,Mybatis常考面试题汇总(附答案
先查询序列得到主键,将主键设置到user对象中,将user对象插入数据库。 <!-- oracle 在执行insert之前执行select 序列.nextval() from dual取出序列最大值,将值设置到user对象 的id属性 --> <insert id="insertUser" parameterType="cn.itcast.mybatis.po.User"> <selectKey keyProperty="id" order="BEF.原创 2021-08-06 13:02:37 · 187 阅读 · 0 评论 -
SpringMVC入门到进阶,诺,你们要的Python进阶来咯
3、bool 值判断相关| 内置函数 | 功能 || — | — || bool() | 判断参数是否为真,为真则返回 True,否则返回 False。「为真」指的是,表达式的结果为布尔值 True,或非零数字,或非空字符串,或非空列表 || all() | 如果可迭代对象中的所有值,在逐一应用 bool(值) 后结果都为 True,则返回 True,否则返回 False || any() | 如果可迭代对象中的任意一个或多个值,在应用 bool(值) 后结果为 True,则返回 True,否则原创 2021-08-06 13:01:24 · 115 阅读 · 0 评论 -
springcloud视频,Java岗开发3年
1. `import`2. `java.util.`3. `Scanner;`4. `publicclass`5. `Main`6. `{`7. `publicstaticvoid`8. `main(String[] args)`9. `{`10. `Scanner`11. `scanner = new`12. `Scanner(System.in);`13. `int`14. `length = scanner.nextI.原创 2021-08-06 13:00:18 · 52 阅读 · 0 评论 -
springcloud视频资源,三年工作经验
有赞:一面hashMap原理,put和resize过程线程池有哪些类型,concurrentHashMap分段锁原理,java8和java7实现的区别B-树和B+树区别,数据库索引原理,组合索引怎么使用?最左匹配的原理spring生命周期,几种scope区别,aop实现有哪几种实现,接口代理和类代理会有什么区别二面项目介绍斐波那契数列非递归实现短URL实现三面HR+主管你现在做的事情,为什么要离职?反正对你性格生活薪资全面了解今日头条:一面自我介绍,做的项目价值原创 2021-08-06 12:59:11 · 81 阅读 · 0 评论 -
springcloud视频教程全集,Java基础面试题
栈是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶.需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。继承于vector,线程安全队列它只允许在表的前端(front)进行删除操作,而在表的 后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。双向队列可以前后端都进行插入与删除操作双向队列与双向链表的区别:双向链表可以在中间进行插入与删除操作排序二叉树首先如果普通二叉树每个节点满足:左原创 2021-08-06 12:58:01 · 61 阅读 · 0 评论 -
Java进阶之光!本科实习生学妹网易面经分享,自信满满结果被虐成狗
技术一面:65分钟左右1)自我介绍个人信息:一分钟说完了2)抽象类和接口的区别Java核心技术:全部讲了一通后,抛出第三个问题3)抽象类内方法如果全部是抽象的,是不是就是接口?为什么有的类继承一个类后,还要实现多个接口?Java核心技术:我说了个接口隔离原则,实在不知道他想要啥答案4)多线程中,线程池用过哪些线程池?多线程并发:没用过,讲了一些自己了解的5)线程池中所有的参数讲解一下多线程并发:corePoolSize,maximumPoolSize,Factory之原创 2021-08-05 12:12:52 · 124 阅读 · 0 评论 -
Java自学!记住!不要在代码中使用
2.“User” 会导致一个基本的设计安全缺陷。“user” 的概念是模糊不清的,使用更精准的术语几乎总是能起到更好的效果。##你没有使用者最开始,没有任何一个软件系统真的有使用者存在。乍一看“user”是一个好的描述,但是你稍微一想就会意识到你的业务逻辑实际上比这要复杂的多。我会使用三个例子,从一个极端的情况出发。机票预订系统没有“users”我曾经给机票预订系统写过访问控制逻辑,下面只是一小部分需求:旅客可以使用预定记录码通过网站查看预定信息。购买者可以通过信用卡号后四位数在网站上修改预原创 2021-08-05 12:11:49 · 67 阅读 · 0 评论