摘要:
都不能。抽象方法需要子类重写,而静态的方法是无法被重写的,因此二者是矛 盾的。本地方法是由本地代码(如 C 代码)实现的方法,而抽象方法是没有实现 的,也是矛盾的。synchronized 和方法的实现细节有关,抽象方法不涉及实现细 节,因此也是相互矛盾的。
阅读全文
posted @ 2020-07-06 18:16
咔啡
阅读(400)
推荐(0)
摘要:
一个内部类对象可以访问创建它的外部类对象的成员,包括私有成员。
阅读全文
posted @ 2020-07-06 11:58
咔啡
阅读(456)
推荐(0)
摘要:
这个问题常问,sleep 方法和 wait 方法都可以用来放弃 CPU 一定的时间,不同点 在于如果线程持有某个对象的监视器,sleep 方法不会放弃这个对象的监视器, wait 方法会放弃这个对象的监视器
阅读全文
posted @ 2020-07-06 10:46
咔啡
阅读(379)
推荐(0)
摘要:
“任何 设计 系统 的组 织( 广泛 定义 )都 将产 生一 种设 计, 其结 构是 组织 通信 结构 的副 本。” – Mel Conway 该法律基本上试图传达这样一个事实:为了使软件模块起作用,整个团队应该进 行良好的沟通。因此,系统的结构反映了产生它的组织的社会边界。
阅读全文
posted @ 2020-07-06 09:27
咔啡
阅读(303)
推荐(0)
摘要:
32 位和 64 位的 JVM 中,int 类型变量的长度是相同的,都是 32 位或者 4个字节。
阅读全文
posted @ 2020-07-06 08:42
咔啡
阅读(2838)
推荐(0)
摘要:
当你将你的应用从 32 位的 JVM 迁移到 64 位的 JVM 时,由于对象的指针从 32 位增加到了 64 位,因此堆内存会突然增加,差不多要翻倍。这也会对 CPU 缓存(容量比内存小很多)的数据产生不利的影响。因为,迁移到 64 位的 JVM 主要动机在于可以指定最大堆大小,通过压缩 OOP
阅读全文
posted @ 2020-07-06 08:38
咔啡
阅读(3940)
推荐(0)
摘要:
Spring 的 MVC 框架是围绕 DispatcherServlet 来设计的,它用来处理所有的 HTTP 请求和响应。
阅读全文
posted @ 2020-07-06 08:07
咔啡
阅读(103)
推荐(0)
摘要:
Executors 为 Executor,ExecutorService,ScheduledExecutorService, ThreadFactory 和 Callable 类提供了一些工具方法。 Executors 可以用于方便的创建线程池
阅读全文
posted @ 2020-07-05 22:00
咔啡
阅读(365)
推荐(0)
摘要:
这是我在写 Java 并发程序的时候遵循的一些最佳实践: a)给线程命名,这样可以帮助调试。 b)最小化同步的范围,而不是将整个方法同步,只对关键部分做同步。 c)如果可以,更偏向于使用 volatile 而不是 synchronized。 d)使用更高层次的并发工具,而不是使用 wait() 和
阅读全文
posted @ 2020-07-05 21:57
咔啡
阅读(252)
推荐(0)
摘要:
构造器不能被继承,因此不能被重写,但可以被重载。
阅读全文
posted @ 2020-07-05 21:18
咔啡
阅读(245)
推荐(0)
摘要:
一种实践是用 volatile 修饰 long 和 double 变量,使其能按原子类型来读写。 double 和 long 都是 64 位宽,因此对这两种类型的读是分为两部分的,第一次 读取第一个 32 位,然后再读剩下的 32 位,这个过程不是原子的,但 Java 中 volatile 型的 l
阅读全文
posted @ 2020-07-05 20:33
咔啡
阅读(318)
推荐(0)
摘要:
微服务,又称微服务 架构,是一种架构风格,它将应用程序构建为以业务领域为 模型的小型自治服务集合 。 通俗地说,你必须看到蜜蜂如何通过对齐六角形蜡细胞来构建它们的蜂窝状物。 他们最初从使用各种材料的小部分开始,并继续从中构建一个大型蜂箱。这些细 胞形成图案,产生坚固的结构,将蜂窝的特定部分固定在一起
阅读全文
posted @ 2020-07-05 20:29
咔啡
阅读(334)
推荐(0)
摘要:
不是。Java 中的基本数据类型只有 8 个:byte、short、int、long、float、double、 char、boolean;除了基本类型(primitive type),剩下的都是引用类型(reference type),Java 5 以后引入的枚举类型也算是一种比较特殊的引用类型。
阅读全文
posted @ 2020-07-05 20:27
咔啡
阅读(546)
推荐(0)
摘要:
UML 是统一建模语言(Unified Modeling Language)的缩写,它发表于 1997 年,综合了当时已经存在的面向对象的建模语言、方法和过程,是一个支持模型 化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支 持。 使用 UML 可以帮助沟通与交流,辅助应用设计
阅读全文
posted @ 2020-07-05 19:16
咔啡
阅读(547)
推荐(0)
摘要:
JdbcTemplate 类提供了很多便利的方法解决诸如把数据库数据转变成基本数据 类型或对象,执行写好的或可调用的数据库操作语句,提供自定义的数据错误处 理。
阅读全文
posted @ 2020-07-05 19:12
咔啡
阅读(121)
推荐(0)
摘要:
Math.round(11.5)的返回值是 12,Math.round(-11.5)的返回值是-11。四舍五 入的原理是在参数上加 0.5 然后进行下取整。
阅读全文
posted @ 2020-07-05 15:38
咔啡
阅读(365)
推荐(0)
摘要:
&运算符有两种用法:(1)按位与;(2)逻辑与。&&运算符是短路与运算。逻辑与 跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是 true 整个表达式的值才是 true。&&之所以称为短路运算是因为,如果&&左边的 表达式的值是 false,右边的表达式会被直接短路掉,不会进行运
阅读全文
posted @ 2020-07-05 15:29
咔啡
阅读(455)
推荐(0)
摘要:
goto 是 Java 中的保留字,在目前版本的 Java 中没有使用。(根据 James Gosling (Java 之父)编写的《The Java Programming Language》一书的附录中给出 了一个 Java 关键字列表,其中有 goto 和 const,但是这两个是目前无法使用
阅读全文
posted @ 2020-07-05 15:26
咔啡
阅读(308)
推荐(0)
摘要:
不可以,静态方法只能访问静态成员,因为非静态方法的调用要先创建对象,在 调用静态方法时可能对象并没有被初始化。
阅读全文
posted @ 2020-07-05 15:23
咔啡
阅读(360)
推荐(0)
摘要:
String 类是 final 类,不可以被继承。 补充:继承 String 本身就是一个错误的行为,对 String 类型最好的重用方式是关 联关系(Has-A)和依赖关系(Use-A)而不是继承关系(Is-A)。
阅读全文
posted @ 2020-07-05 14:31
咔啡
阅读(230)
推荐(0)
摘要:
方法很多,可以自己写实现也可以使用 String 或 StringBuffer/StringBuilder 中 的方法。有一道很常见的面试题是用递归实现字符串反转,代码如下所示: public static String reverse(String originStr) { if(originSt
阅读全文
posted @ 2020-07-05 14:29
咔啡
阅读(470)
推荐(0)
摘要:
两个对象,一个是静态区的”xyz”,一个是用 new 创建在堆上的对象。
阅读全文
posted @ 2020-07-05 13:51
咔啡
阅读(765)
推荐(0)
摘要:
Serial 与 Parallel 在 GC 执行的时候都会引起 stop-the-world。它们之间主要 不同 serial 收集器是默认的复制收集器,执行 GC 的时候只有一个线程,而 parallel 收集器使用多个 GC 线程来执行。
阅读全文
posted @ 2020-07-05 13:48
咔啡
阅读(960)
推荐(0)
摘要:
SVG表示(scalable vector graphics)可缩放矢量图形。这是一个基于文本的图形语言,它可以绘制使用文本、线、点等的图形,因此可以轻巧又快速地渲染。
阅读全文
posted @ 2020-07-05 13:24
咔啡
阅读(1593)
推荐(0)
摘要:
静态变量是被 static 修饰符修饰的变量,也称为类变量,它属于类,不属于类的 任何一个对象,一个类不管创建多少个对象,静态变量在内存中有且仅有一个拷 贝;实例变量必须依存于某一实例,需要先创建对象然后通过对象才能访问到它。 静态变量可以实现让多个对象共享内存。 补充:在 Java 开发中,上下文
阅读全文
posted @ 2020-07-05 13:08
咔啡
阅读(555)
推荐(0)
摘要:
不是线程安全的操作。它涉及到多个指令,如读取变量值,增加,然后存 储回内存,这个过程可能会出现多个线程交差。
阅读全文
posted @ 2020-07-05 13:00
咔啡
阅读(1275)
推荐(0)
摘要:
Representational State Transfer(REST)/ RESTful Web 服务是一种帮助计 算机系统通过 Internet 进行通信的架构风格。这使得微服务更容易理解和实现。 微服务可以使用或不使用 RESTful API 实现,但使用 RESTful API 构建松散耦
阅读全文
posted @ 2020-07-05 12:37
咔啡
阅读(718)
推荐(0)
摘要:
不是,虽然很多人将其标记为HTML 5,但它不是HTML 5规范的一部分。HTML 5规范基于SQLite。
阅读全文
posted @ 2020-07-05 12:32
咔啡
阅读(154)
推荐(0)
摘要:
使用 SpringJDBC 框架,资源管理和错误处理的代价都会被减轻。所以开发者只 需写 statements 和 queries 从数据存取数据,JDBC 也可以在 Spring 框架提供 的模板类的帮助下更有效地被使用,这个模板叫 JdbcTemplate (例子见这里 here)
阅读全文
posted @ 2020-07-05 11:58
咔啡
阅读(231)
推荐(0)
posted @ 2020-07-05 11:10
咔啡
阅读(359)
推荐(0)
摘要:
一般都是使用 & 在命令结尾来让程序自动运行。(命令后可以不追加空格)
阅读全文
posted @ 2020-07-05 10:10
咔啡
阅读(307)
推荐(0)
摘要:
在分布式环境中,有些业务逻辑只需要集群中的某一台机器进行执行,其他的机 器可以共享这个结果,这样可以大大减少重复计算,提高性能,于是就需要进行 leader 选举。
阅读全文
posted @ 2020-07-05 09:34
咔啡
阅读(645)
推荐(0)
摘要:
该注解表明该类扮演控制器的角色,Spring 不需要你继承任何其他控制器基类或 引用 Servlet API。
阅读全文
posted @ 2020-07-05 08:40
咔啡
阅读(402)
推荐(0)
摘要:
从写代码的角度来说,两者的复杂度是相同的,因为同步代码与线程数量是相互 独立的。但是同步策略的选择依赖于线程的数量,因为越多的线程意味着更大的 竞争,所以你需要利用同步技术,如锁分离,这要求更复杂的代码和专业知识。
阅读全文
posted @ 2020-07-04 21:09
咔啡
阅读(377)
推荐(0)
摘要:
装配,或 bean 装配是指在 Spring 容器中把 bean 组装到一起,前提是容器需要知道 bean 的依赖关系,如何通过依赖注入来把它们装配到一起。
阅读全文
posted @ 2020-07-04 19:54
咔啡
阅读(541)
推荐(0)
摘要:
BeanFactory - BeanFactory 就像一个包含 bean 集合的工厂类。它会在客户端 要求时实例化 bean。ApplicationContext - ApplicationContext 接口扩展了 BeanFactory 接口。它 在 BeanFactory 基础上提供了一些额
阅读全文
posted @ 2020-07-04 13:26
咔啡
阅读(3182)
推荐(0)
摘要:
throw 用于抛出 java.lang.Throwable 类的一个实例化对象,意思是说你可以通 过关键字 throw 抛出一个 Error 或者 一个 Exception,如:throw new IllegalArgumentException(“size must be multiple of
阅读全文
posted @ 2020-07-04 13:03
咔啡
阅读(594)
推荐(0)
摘要:
1、调用 getData()/getChildren()/exist()三个 API,传入 Watcher 对象 2、标记请求 request,封装 Watcher 到 WatchRegistration3、封装成 Packet 对象,发服务端发送 request4、收到服务端响应后,将 Watch
阅读全文
posted @ 2020-07-04 13:01
咔啡
阅读(218)
推荐(0)
摘要:
整个集群完成 Leader 选举之后,Learner(Follower 和 Observer 的统称)回向 Leader 服务器进行注册。当 Learner 服务器想 Leader 服务器完成注册后,进入 数据同步环节。数据同步流程:(均以消息传递的方式进行)Learner 向 Learder 注册
阅读全文
posted @ 2020-07-04 13:00
咔啡
阅读(124)
推荐(0)
摘要:
最明显的区别是 ArrrayList 底层的数据结构是数组,支持随机访问,而 LinkedList 的底层数据结构书链表,不支持随机访问。使用下标访问一个元素, ArrayList 的时间复杂度是 O(1),而 LinkedList 是 O(n)。更多细节的讨论参见
阅读全文
posted @ 2020-07-04 12:44
咔啡
阅读(175)
推荐(0)