文件和编辑相关
control+enter - 插入(与 alt+insert 相同)
option+enter - 排错(与 alt+enter 相同)
shift+enter - 在当前行下面插入新行
command + enter - 在光标前一行插入新行
shift + command - 创建测试用例
shift + control + r - 运行配置的运行/调试任务
option + commmand + (+/-) - 快速折叠代码段或打开折叠的部分 (Ctrl+Shift+/)
command + > 或 < - 关闭或展开当前文件夹内的所有折叠部分(仅针对文件夹)
command + [ 或 ] - 跳转到上次编辑的位置
shift + command + F - 在项目中查找关键字
option + command + l - 代码格式化 (Ctrl+Alt+L)
shift+command+j - 插入代码模板(Live Templates)
command + j - Acejump: 快速定位到行首、变量或方法等
s ...
字符串常量归常量池管理,那比如 String str = “abc”; “abc” 这个对象是放在内存中的哪个位置,是字符串常量池中还是堆?
”这句代码的 abc 当然在常量池中,只有 new String(“abc”) 这个对象才在堆中创建“,他们大概是这么回答。
“abc”这个东西,是放在常量池中,这个答案是错误的。
字符串“abc” 的本体、实例,应该是存在于 Java 堆中。
可能还真的有部分同学对这个知识点不熟悉,今天和大家聊聊字符串这个问题 ~
初学 Java 时,学到字符串这一部分,有一段代码
123String str1 = "hello";String str2 = new String("hello");复制代码
书上的解释是:执行第一行的时候,已经把 “hello” 字符串放到了常量池中,执行第二行代码时,会将常量池中已经存在的 “hello” 复制一份到堆内存中,创建一个的新的 String 对象。虽然值一样,但他们是不同的对象。
当时看完这个解释,我产生了很多疑惑。因为在此之前已经知道字符串的底层是 ch ...
新时代码农
未读一、升级到最新版1. 检查当前已安装的 docker 相关软件包1rpm -qa | grep docker
2. 卸载旧版本执行以下命令卸载所有列出的相关软件:
12345yum remove docker-<version>yum remove docker-client-<version>yum remove docker-common-<version># 示例:# yum remove docker-1.13.1-53.git774336d.el7.centos.x86_64
3. 升级到最新版使用 curl 命令安装最新的 Docker 版本:
1curl -fsSL https://get.docker.com/ | sh
4. 启动和设置开机自启 Docker 服务
重启 Docker
1systemctl restart docker
设置启动项,确保 Docker 在系统启动时自动运行:
1systemctl enable docker
二、解决升级后容器启动错误若从旧版本(如 1.13.1)直接升级到新版本(例如 ...
Docker 入门指南Docker 是一个开源的应用容器引擎,让开发者能够将软件及其运行时环境封装起来以方便地进行移植和部署。通过使用 Docker,可以快速打包、发布以及运行应用程序在几乎任何地方(包括物理机或虚拟机上)。它利用 Linux 内核的资源隔离特性来实现轻量级的操作系统级虚拟化,使得开发人员能够创建和管理容器化的应用和服务。
安装 Docker在 Ubuntu 上安装 Docker
更新包索引:
1$ sudo apt-get update
安装必要的软件包以允许 apt 使用 HTTPS 来获取安全存储库:
1$ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
添加 Docker 的官方 GPG 密钥:
1$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
利用该密钥来验证 Docker 存储库中的所有软件包的完整性和真 ...
JUnit 是一个开放源代码的 Java 测试框架,用于编写和运行可重复的测试。他是用于单元测试框架体系 xUnit 的一个实例(用于 java 语言)。
为什么使用 Junit我们以前测试一个类的步骤:
新建一个 test 类
创建 main() 方法
在 main 类 new 一个我们要测试的类的实例
然后调用这个类的方法,输出一个结果
当测试的类有多个方法时,我们必须调用所有的方法,为了不让上一次的方法调用对下一次的调用产生影响,我们会在 new 一个实例出来,或者将上一次的代码注释掉.则将造成整个测试代码的混乱.这个时候我们希望如果可以有多个 mian() 方法,每个 main() 方法内只调用一个需要测试的类的方法,这样显得调理清晰.但是这是不可能的,一个程序只能有一个入口
这个时候,Junit 站了出来,它大声的说它可以做到.
怎么使用 Junit主要步骤:
新建一个 java 项目
在 src 下新建一个 util 包,编写一个普通的类
123456789101112131415161718192021222324252627/** * 对名称,地址等字符串格式的 ...
新时代码农
未读Maven 添加 IntelliJ IDEA 项目文件在使用 Maven 构建 Java 项目时,若需生成与 IntelliJ IDEA 兼容的项目文件,可以通过以下命令进行:
1mvn idea:idea
idea:idea 插件的目标执行了另外三个目标:project、module 和 workspace。
idea:project: 用于生成 IntelliJ IDEA 项目的配置文件(*.ipr)。
idea:module: 用于生成 IntelliJ IDEA 模块的配置文件(*.iml)。
idea:workspace: 用于生成工作区文件(*.iws),此目标在大多数情况下不会直接使用,因为默认会包含在 idea:idea 中。
删除指定依赖如果你想从本地仓库中删除特定版本的依赖,可以使用以下命令:
1mvn com.xxx:xxx-assist-maven-plugin:2.0.0-SNAPSHOT:delete-v5-dependence -Dversion=1.7.1
或者首先下载指定的依赖项,然后删除它:
123456mvn dependency:get ...
spring boot 之所以能够自动配置 bean,是通过基于条件来配置 Bean 的能力实现的。
常用的条件注解如下
1234567891011121. @ConditionalOnBean:当容器里存在指定的Bean的条件下2. @ConditionalOnClass:当前类路径下存在指定的类的条件下3. @ConditionalOnExpression:基于SpEL表达式作为判断条件4. @ConditionalOnJava:基于JVM版本作为判断条件5. @ConditionalOnJndi:在JNDI存在的条件下查找指定的位置6. @ConditionalOnMissingBean:当容器里没有指定的Bean的条件下7. @ConditionalOnMissingClass:当前类路径下没有指定的类的条件下8. @ConditionalOnNotWebApplication:当前项目不是web项目的条件下9. @ConditionalOnProperty:指定的属性是否有指定的值的条件下10. @ConditionalOnResource:类路径下是否有指定的值11. @C ...
新时代码农
未读一、SQL Mode 设置查看当前 SQL 模式为了查看 MySQL 当前使用的 SQL 模式,请执行以下查询:
1SELECT @@sql_mode;
修改 SQL 模式
会话级别设置若要在当前会话中临时修改 SQL 模式,可使用如下命令:1SET sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
全局设置若要永久更改 SQL 模式,需要在 MySQL 的配置文件(如 my.cnf 或 my.ini)中添加以下内容:1sql-mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
二、修改数据库和表的字符编码修改整个数据库的编码1A ...
Apache Maven 是一个项目管理和构建自动化工具,主要用于 Java 项目的构建、依赖管理和文档生成。它通过定义项目的配置文件 pom.xml(Project Object Model),使开发者能够以声明式的方式描述他们的项目,从而简化了构建过程。
Maven 最重要的特性之一是它的插件系统,提供了丰富的功能来满足开发中各种需求,如编译代码、运行测试、打包和部署应用等。此外,它还支持多种项目类型,包括 Java Web 应用、单元测试等,并且可以集成持续集成工具(例如 Jenkins)以实现自动化构建。
安装 MavenLinux 系统:
下载最新的 Maven 发行版:
1wget https://downloads.apache.org/maven/maven-3/3.3.3/binaries/apache-maven-3.3.3-bin.tar.gz
解压下载的文件:
12tar -xzf apache-maven-3.3.3-bin.tar.gzmv apache-maven-3.3.3 /opt/maven
设置环境变量(编辑 ~/.bashrc 或 /etc/ ...
原文链接作者: Jakob Jenkov译者: fangqiang08(fangqiang08@gmail.com)
利用 Try-Catch-Finally 管理资源(旧的代码风格)在 java7 以前, 程序中使用的资源需要被明确地关闭, 这个体验有点繁琐.
下面的方法读取文件, 然后用 System.out 打印:
1234567891011121314151617private static void printFile() throws IOException { InputStream input = null; try { input = <strong>new FileInputStream("file.txt")</strong>; int data = <s ...
说到 log4j, 基本人人都知道, 但是 logback, 估计用的人不多, 其实这两个都是 sl4j 的实现, 而且是一个作者写的.
logback 比 log4j 更加好用, 而且效率更高.
如何配置 logback.
12345<dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.1.3</version></dependency>
配置文件: logback.xml
123456789101112131415161718192021222324252627282930313233343536373839<?xml version="1.0" encoding="UTF-8" ?><configuration scan="true" scanPe ...
新时代码农
未读123456789101112131415161718192021222324### set log levels ###log4j.rootLogger = debug , stdout , D , E### 输出到控制台 ###log4j.appender.stdout = org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target = System.outlog4j.appender.stdout.layout = org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{ 1 }:%L - %m%n### 输出到日志文件 ###log4j.appender.D = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.D.File = logs/log.loglog4j.ap ...
在 Java 中,我们可以使用 JDBC(Java Database Connectivity)来连接、查询和操作关系型数据库。以下是一个详细的指南,展示如何进行基本的数据库操作,包括连接到 MySQL 服务器、执行 SQL 语句以及预处理数据。
数据库操作的基本步骤:1. 导入必要的包1import java.sql.*;
2. 定义一个主类来初始化和测试数据库操作基本的数据库连接与查询:首先,我们定义一些基本的变量用于存储数据库的信息。
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253public class DataBasePractice { public static void main(String[] args) { Connection con = null; // MySQL驱动程序名 String driver = "com.mysql.jdb ...
新时代码农
未读Logging SystemLog4j
较早出现的比较成功的日志系统是 Log4j.Log4j 开创的日志系统模型(Logger/Appender/Level)行之有效, 并一直延用至今.
JUL
JDK1.4 是第一个自带日志系统的 JDK, 简称(JUL).JUL 并没有明显的优势来战胜 Log4j, 反而造成了标准的混乱 —— 采用不同日志系统的应用程序无法和谐共存.
Logback是较新的日志系统.它是 Log4j 的作者吸取多年的经验教训以后重新做出的一套系统. 它的使用更方便, 功能更强, 而且性能也更高.Logback 不能单独使用, 必须配合日志框架 SLF4J 来使用.
Logging FrameworkJCL (Jakarta Commons Logging)
这是目前最流行的一个日志框架, 由 Apache Jakarta 社区提供.Spring 框架、许多老应用都依赖于 JCL.
SLF4J
这是一个最新的日志框架, 由 Log4j 的作者推出.SLF4J 提供了新的 API, 特别用来配合 Logback 的新功能. 但 SLF4J 同样兼 ...