2020
10-08
10-08
Java 封装基础知识
在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。要访问该类的代码和数据,必须通过严格的接口控制。封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。封装的优点1...
继续阅读 >
Java.lang中自带的注解@Override:表示当前的方法定义将覆盖基类的方法。如果你不小心拼写错误,或者方法签名被错误拼写的时候,编译器就会发出错误提示。@Deprecated:如果使用该注解的元素被调用,编译器就会发出警告信息。@SuppressWarnings:关闭不当的编译器警告信息。@SafeVarargs:在Java7中加入用于禁止对具有泛型varargs参数的方法或构造函数的调用方发出警告。@FunctionalInterface:Java8中加入用于表...
先来看一个多线程下使用例子,看到运行结果会出现异常:importjava.text.DateFormat;importjava.text.SimpleDateFormat;importjava.util.Date;importjava.util.Random;importjava.util.concurrent.ExecutorService;importjava.util.concurrent.Executors;publicclassSimpleDateFormateTest{publicstaticvoidmain(String[]args){finalDateFormatdf=newSimpleDateFormat("yyyyMMdd,HHmmss");Executor...
背景最近项目中需要上传视频文件,由于视频文件可能会比较大,但是我们应用服务器tomcat设置单次只支持的100M,因此决定开发一个分片上传接口。把大文件分成若干个小文件上传。所有文件上传完成后通过唯一标示进行合并文件。我们的开发人员很快完成了开发,并在单元测试中表现无误。上传代码到测试环境,喔嚯!!!出错了。经过一段时间的辛苦排查终于发现问题,测试环境多实例,分片上传的接口会被路由到不同的实例,导致上传后的...
分布式锁三种实现方式:一,基于数据库实现分布式锁1.悲观锁利用select…where…forupdate排他锁注意:其他附加功能与实现一基本一致,这里需要注意的是“wherename=lock”,name字段必须要走索引,否则会锁表。有些情况下,比如表不大,mysql优化器会不走这个索引,导致锁表问题。2.乐观锁所谓乐观锁与前边最大区别在于基于CAS思想,是不具有互斥性,不会产生锁等待而消耗资源,操作过程中认为不存在并发冲突,只有upd...