首页 文章
  • 使用更优雅的办法解决 MySQL 忘记 Root 账号密码的问题

    之前一直以为 MySQL 中如果忘记了 root 账号的密码,只有一种解法: -skip-grant-tables。 相对于 skip-grant-tables 方案,我们来看看另外一种更优雅的解法,其只会重启一次,且基本上不存在安全隐患。 首先是关闭实例 其次,创建一个sql文件,并写上密码修改语句: # vim init.sql alter user 'root'@'localhost' i...
  • 主流的分布式架构详解

    一、前言   本文我们来聊一聊目前主流的分布式架构和分布式架构中常见理论以及如何才能设计出高可用的分布式架构。分布式架构中,SOA和微服务架构是最常见两种分布式架构,而且目前服务网格的概念也越来越火了。那我们本文就先从这些常见架构开始。 二、SOA架构解析   SOA 全称是: Service Oriented Architecture,中文释义为 “面向服务的架构”,它是一种设计理念,其中包含多...
  • atlas + mysql 实现主主集群读写分离

    前言: 目前线上系统数据库采用的是主主架构。其中一台主仅在故障时切换使用,(仅单台服务器对外提供服务,当一台出现问题,切换至另一台)。该结构很难支撑较大并发。另外双主中的另外一台机在非故障时没得到有效利用。 结合以上情况,拟采用数据库中间件提供读写分离功能(一主读写,一主读)。既可以提高读并发能力。又可以充分利用数据库服务器。后期可继续增加主主集群的从服务器扩充读并发性能。如下为具体架构图: A...
  • linux 重要日志说明

    本文将介绍 Linux 中重要日志存储位置及其作用。 /var/log/boot.log存储了与系统启动相关的信息。当启动有问题,或者系统莫名其妙的关机或重启,则可以查看该日志。 /var/log/secure (RHEL/CentOS) & /var/log/auth.log(Debian/ubuntu) 存储了与用户认证有关的信息。比如查看用户登录的信息,或者sudo命令的使用情...
  • 如何检查Java中是否存在文件?

    问题 在打开文件以便在Java中读取之前,如何检查文件是否存在? (相当于Perl的-e $ filename)。 编写文件的唯一similar question on SO,因此使用FileWriter回答,这显然不适用于此处。 如果可能的话,我更喜欢真正的API调用返回true / false,而不是某些“调用API来打开文件并在它抛出异常时捕获,你在文本中检查'无文件'”,但我可以忍受后者。...
  • Java核心库中的GoF设计模式示例

    问题 我正在学习GoF Java设计模式,我想看看它们的一些真实例子。 Java核心库中这些设计模式的一些很好的例子是什么? #1 热门回答(2815 赞) 你可以在Wikipedia中找到许多设计模式的概述。它还提到了GoF提到的模式。我将在这里总结它们并尝试在Java SE和Java EE API中分配尽可能多的模式实现。 ##创作模式 ###抽象工厂(可通过创建方法识别,返回工厂本身,反过...
  • 如何使用Java逐行读取大型文本文件?

    问题 我需要使用Java逐行读取大约5-6 GB的大文本文件。 我怎么能快点做到这一点? #1 热门回答(849 赞) 一种常见的模式是使用 try (BufferedReader br = new BufferedReader(new FileReader(file))) { String line; while ((line = br.readLine()) != null)...
  • JDK和JRE有什么区别?

    问题 JDK和JRE有什么区别?他们的角色是什么,我应该何时使用其中一个? #1 热门回答(891 赞) JRE:Java运行时环境。它基本上是运行Java程序的Java虚拟机。它还包括用于Applet执行的浏览器插件。 JDK:它是用于Java的全功能软件开发工具包,包括JRE,以及用于创建和编译程序的编译器和工具(如JavaDoc和Java Debugger)。 通常,当你只关心在浏览器或计...
  • Java 8将<V>列入Map <K,V>

    问题 我想使用Java 8的流和lambdas将对象列表转换为Map。 这就是我在Java 7及以下版本中编写它的方法。 private Map&lt;String, Choice&gt; nameMap(List&lt;Choice&gt; choices) { final Map&lt;String, Choice&gt; hashMap = new HashMap&lt;&g...
  • 在Java中将InputStream转换为字节数组

    问题 如何将整个InputStream读入字节数组? #1 热门回答(919 赞) 你可以使用ApacheCommons IO来处理此类和类似的任务。 IOUtils类型有一个静态方法来读取InputStream并返回byte []。 InputStream is; byte[] bytes = IOUtils.toByteArray(is); 在内部,它创建一个ByteArrayOutput...
  • Java 中怎样将 int 转换为 String 更为优雅?

    问题 我正在开发一个项目,从int到String的所有转换都是这样完成的: int i = 5; String strI = &quot;&quot; + i; 我不熟悉Java。这是通常的做法,还是有什么问题? #1 热门回答(871 赞) 正常的方法是Integer.toString(i)或String.valueOf(i)。 连接字符串可以工作,但它是非常规的,可能是一个代码的坏味道,因...
  • Java,参数中有3个点

    问题 以下方法中的3个点是什么意思? public void myMethod(String... strings){ // method body } #1 热门回答(802 赞) 这意味着可以传递零个或多个String对象(或它们的数组)作为该方法的参数。 请参阅此处的“任意数量的参数”部分:http://java.sun.com/docs/books/tutorial/java/...
  • 显示动画GIF

    问题 我想在我的应用程序中显示动画GIF图像。正如我发现Android本身不支持动画GIF的困难方式。 但是它可以使用AnimationDrawable显示动画:Develop &gt; Guides &gt; Images &amp; Graphics &gt; Drawables Overview该示例使用在应用程序资源中保存为帧的动画,但我需要的是直接显示动画gif。 我的计划是将动画GIF...
  • Linux下的Java虚拟内存使用情况,使用的内存过多

    问题 我在Linux下运行的Java应用程序有问题。 当我使用默认的最大堆大小(64 MB)启动应用程序时,我看到使用tops应用程序为应用程序分配了240 MB的虚拟内存。这会在计算机上创建一些其他软件的问题,这些软件相对资源有限。 据我所知,保留的虚拟内存无论如何都不会被使用,因为一旦我们达到堆限制,就会抛出.OutOfMemoryError。我在Windows下运行相同的应用程序,我发现虚拟...
  • CUBA Platform —— 开源的、可靠的企业级应用开发利器

    原文:CUBA Platform: An Open-Source Java Framework for Rapid Application Development翻译:CUBA ChinaCUBA-Platform 官方网站 :https://www.cuba-platform.comCUBA China 官方网站 :http://cuba-platform.cn欢迎转载,转载请注明来源: htt...
  • 如何计算方法在Java中的执行时间?

    问题 如何获得方法的执行时间?是否有Timer实用程序类用于计算任务所需的时间等等? Google上的大多数搜索会返回计划线程和任务的计时器的结果,这不是我想要的。 #1 热门回答(941 赞) 总有一种老式的方式: long startTime = System.nanoTime(); methodToTime(); long endTime = System.nanoTime(); lon...
  • 如何告诉Maven使用最新版本的依赖项?

    问题 在Maven中,依赖项通常设置如下: &lt;dependency&gt; &lt;groupId&gt;wonderful-inc&lt;/groupId&gt; &lt;artifactId&gt;dream-library&lt;/artifactId&gt; &lt;version&gt;1.2.3&lt;/version&gt; &lt;/dependency&gt; ...
  • 为什么array [idx] =“a”在Java 8中增加一次idx,在Java 9和10中增加两次?

    问题 对于挑战,a fellow code golferwrote the following code: import java.util.*; public class Main { public static void main(String[] args) { int size = 3; String[] array = new String[size]; Ar...
  • 我可以在没有安装的情况下将jar添加到maven 2 build classpath吗?

    问题 在实验/快速和肮脏的模拟开发阶段,Maven2让我发疯。 我有一个pom.xml文件,它定义了我想要使用的web-app框架的依赖项,我可以从该文件快速生成启动项目。但是,有时我想链接到尚未定义pom.xml文件的第三方库,而不是手动创建第三方lib的pom.xml文件并安装它,并且将依赖项添加到我的pom.xml中,我只想告诉Maven:“除了我定义的依赖项之外,还要包含/ lib中的任何...
  • 如何在Java中复制对象?

    问题 考虑以下代码: DummyBean dum = new DummyBean(); dum.setDummy(&quot;foo&quot;); System.out.println(dum.getDummy()); // prints 'foo' DummyBean dumtwo = dum; System.out.println(dumtwo.getDummy()); // prints...
  • 将DEX反编译成Java源代码

    问题 如何将Android DEX(VM字节码)文件反编译成相应的Java源代码? #1 热门回答(822 赞) 这很容易 获取这些工具: 1)dex2jar将dex文件转换为jar文件 2)jd-gui查看jar中的java文件 源代码非常易读,因为dex2jar进行了一些优化。 ##程序: 这是关于如何反编译的程序: 步骤1: 将test_apk-debug.apk中的classes.dex...
  • 什么是Maven Snapshot,为什么我们需要它?

    问题 我对Maven Snapshot的含义以及为什么要构建一个它有点困惑? #1 热门回答(728 赞) Maven中的快照版本尚未发布。 这个想法是在a1.0发布之前的(或任何其他版本)完成,存在一个1.0-SNAPSHOT。那个版本可能会成为“1.0”。它基本上是“正在开发的”1.0“。这可能是一个真正的“1.0”版本,或者相当远(例如,在“0.9”版本之后)。 “真实”版本和快照版本之间...
  • 什么是Java中的守护程序线程?

    问题 谁能告诉我Java中的守护程序线程是什么? #1 热门回答(532 赞) 守护程序线程是一个线程,它不会阻止JVM在程序完成但程序仍在运行时退出。守护程序线程的一个示例是垃圾收集。 你可以使用setDaemon(boolean)方法在线程启动之前更改Thread守护程序属性。 #2 热门回答(293 赞) 还有几点(参考:Java Concurrency in Practice) 创建...
  • 在Java中覆盖equals和hashCode时应该考虑哪些问题?

    问题 重写equals和hashCode时必须考虑哪些问题/陷阱? #1 热门回答(1365 赞) ###理论(语言律师和数学倾向):  equals()(javadoc)必须定义一个等价关系(它必须是自反的,对称的和反式的)。另外,它必须是一致的(如果没有修改对象,那么它必须保持返回相同的值)。此外,o.equals(null)必须始终返回false。  hashCode()(javadoc)...
  • 如何在javadoc中引用方法?

    问题 如何使用@link标签链接到方法? 我想改变 /** * Returns the Baz object owned by the Bar object owned by Foo owned by this. * A convenience method, equivalent to getFoo().getBar().getBaz() * @return baz */ public ...
  • 如何在Java中使用可选参数?什么规范支持可选参数?

    问题 如何在Java中使用可选参数?什么规范支持可选参数? #1 热门回答(1377 赞) 有几种方法可以在Java中模拟可选参数: 方法重载。 void foo(String a,Integer b){    // ...} void foo(String a){    foo(a,0); //这里,0是b的默认值} foo(“a”,2);FOO( “A”); 这种方法的一个限制是,如果你...
  • 为什么Java Vector(和Stack)类被认为已过时或已弃用?

    问题 为什么Java Vector被认为是遗留类,已过时或已弃用? 在使用并发时,它的使用是否有效? 如果我不想手动同步对象而只想使用线程安全的集合而不需要制作底层数组的新副本(如CopyOnWriteArrayList那样),那么使用Vector是否合适? 那么Stack,它是Vector的一个子类呢,我应该用什么代替呢? #1 热门回答(600 赞) Vector在每个单独的操作上同步。这几...
  • 在Java / Maven中处理“Xerces hell”?

    问题 在我的办公室里,仅仅提到Xerces这个词就足以煽动开发者的凶悍愤怒。粗略地看一眼其他Xerces关于SO的问题,似乎表明几乎所有Maven用户都会在某个时候“触及”这个问题。不幸的是,理解这个问题需要对Xerces的历史有一点了解...... #历史 Xerces是Java生态系统中使用最广泛的XML解析器。几乎每个用Java编写的库或框架都以某种身份使用Xerces(传递,如果不是直接...
  • 错误:java:javacTask:源版本8需要目标版本1.8

    问题 使用IntelliJ IDE无法编译任何项目。以下设置的屏幕截图: 使用过的JDK: 项目SDK和语言级别: 语言水平: 有人有什么想法吗? #1 热门回答(1361 赞) 文件&gt;设置&gt;构建,执行,部署&gt;编译器&gt; Java编译器 将目标字节码版本更改为你正在使用的模块的1.8。如果你使用的是Maven将编译器插件添加到顶级project节点下的pom.xml...
  • 不幸的是MyApp已经停止了。我该如何解决这个问题?

    问题 我正在开发一个应用程序,每次运行它时,我都收到消息: 不幸的是,MyApp已经停止了。 我该怎么做才能解决这个问题?关于这个问题 - 显然受到What is a stack trace, and how can I use it to debug my application errors?的启发,有很多问题表明他们的应用程序崩溃了,没有任何进一步的细节。这个问题旨在指导新手Androi...

热门问题