杂项——笔记


前言

没啥前言可以说的就是我的个人的杂项笔记,你觉得不好你也打不着我


IDEA:

摘要:
java 中\n\r\t\f的区别
使用IDEA工具连接linux
本笔记专注于java1.8的相关笔记

IDEA快捷键:

删除无用的导包:ctrl+alt+o;

至于为什么不用自动删除无用的包,太**了

配置IDEA中mavn的全局设置:可以在每个项目都设置一下,也可以直接设置所有的项目

每个项目都设置:在设置(按下ctrl+shift+s)中选择 Build,Execution,Deployment =>BulidTools =>Maven => 选择 Maven home directory:以及 user settingss file进行选择。


java 中\n\r\t\f的区别

字符作用
\n换行
\r回车
\t制表
\f换页

\n:使光标定位到下一行:

public class Test {
        public static void main(String[] args) {
                System.out.print("aaaaaaaaaaaaa\nbbbb");
        }
}

这个很好理解,故不放置控制台输出

\r回车符,使光标回到当前行的行首,如果回车之前存在内容,则会覆盖掉之前的内容。

public class Test {
	public static void main(String[] args) {
		System.out.println("hello world\r12345");
	}
}

输出结果为:
在这里插入图片描述

\t是制表符,相当于tab缩进。它会使得你的输出内容为4的倍数个字符。

例如:“a\t”会在输出a之后再输出三个空格。如果输出的字符串为“aaaa\t”则会在输出4个a之后再输出4个空格。以此类推"aaaaa\t"会在输出5个a之后再输出3个空格。即:你的字符串+\t为你输出的空格=4的倍数个字符。

public class Test {
	public static void main(String[] args) {
		System.out.println("a\t*");
		System.out.println("123412341234");
		System.out.println("aaa\t*");
		System.out.println("123412341234");
		System.out.println("aaaa\t*");
		System.out.println("123412341234");
		System.out.println("aaaaa\t*");
		System.out.println("123412341234");
	}
}

输出结果为在这里插入图片描述

\f是换页符,在控制台输出是没有意义的不过可能会输出一些怪怪的符号

public class Test {
	public static void main(String[] args) {
		System.out.println("aaaa\fbbbb");
	}
}

输出结果
图是别人的找不到了


使用IDEA工具连接linux

此处完全凭借记忆来写的,有错就有错了反正你也打不着

前提需要安装ssh 如果已安装git且可以成功上传代码到gitee或github可以忽略

随意打开一个IDEA项目之后,找到 TERMINAL 控制台输入

ssh linux用户名@linux的ip地址然后回车即可

例如我的用户为root 我的ip为:192.168.1.1

ssh root@192.168.1.1即可

此时可能会面对上传文件问题:

使用 sftp root@192.168.1.1之后会弹出一个 sftp>

在使用put命令将文件路径+文件名输入到之后即可

IDEA连接数据库

  • 讲道理这个跟上面那个应该放在一起,不过不重要

方法一

在view中仔细找找可以找到Database,我的长这样:
在这里插入图片描述
然后就好搞了
在这里插入图片描述这里我选择的是mysql

在这里插入图片描述然后去Advanced里找到ServiceTimeZone 大概是这么拼写的反正除了time之外都对给它的值写UTC再连接就可以了

方法二

使用timinal
输入mysql -u用户名 -p密码 回车即可

theif-book-idea

这是一个摸鱼神器,可惜我的编码格式有问题,有时间了可以解决一下。

java垃圾回收机制

摘要:java技术体系中提倡自动内存管理,即给对象分配内存以及回收分配给对象的内存


![在这里插入图片描述](https://img-blog.csdn.net/20170610165140237?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWlqaXVkdQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center#pic_center)想要更好的了解java垃圾回收机制就要对上图进行一定的认识。

一、垃圾回收机制的意义

简单来说就是:解放我们的双手,不需要在编写程序时去考虑内存管理的问题。主要呢,可以分为以下几个主要的问题

哪些内存需要回收?(对象是否可以被回收的两种今典算法:引用计数法和可达性分析算法)
什么时候回收? (堆的新生代、老生代、永久代的垃圾回收时机,MinorGC 和FullGC)
如何回收?(三种经典垃圾回收算法标记清楚算法复制清楚算法标记整理算法 以及收集算法七种垃圾收集器


在这里,我们需要知道 Stop-the-World ,这个词意味着什么呢?意味着它很牛逼,真的牛逼,一旦它来了,其他所有的线程都得停下来等它办事,它办完了它的事情之后,剩下的你们继续。所以呢,很多情况下GC优化就是指代减少stop-the-world发生的时间,从而使系统具有 高吞吐、低停顿的特点

二、回收

哪些对象需要被回收?
引用计数算法:判断对象的引用数量

引用计数算法是通过判断对象的引用数量来决定对象是否可以被回收。

引用计数算法是垃圾收集器中的早期策略。在这种方法中,堆中的每个对象实例都有一个引用计数。当一个对象被创建时,且将该对象实例分配给一个引用变量,该对象实例的引用计数设置为 1。当任何其它变量被赋值为这个对象的引用时,对象实例的引用计数加 1(a = b,则b引用的对象实例的计数器加 1),但当一个对象实例的某个引用超过了生命周期或者被设置为一个新值时,对象实例的引用计数减 1。特别地,当一个对象实例被垃圾收集时,它引用的任何对象实例的引用计数器均减 1。任何引用计数为0的对象实例可以被当作垃圾收集。

引用计数收集器可以很快的执行,并且交织在程序运行中,对程序需要不被长时间打断的实时环境比较有利,但其很难解决对象之间相互循环引用的问题。如下面的程序和示意图所示,对象objA和objB之间的引用计数永远不可能为 0,那么这两个对象就永远不能被回收。

在这里插入图片描述

public class ReferenceCountingGC {
  
        public Object instance = null;
 
        public static void testGC(){
 
            ReferenceCountingGC objA = new ReferenceCountingGC ();
            ReferenceCountingGC objB = new ReferenceCountingGC ();
 
            // 对象之间相互循环引用,对象objA和objB之间的引用计数永远不可能为 0
            objB.instance = objA;
            objA.instance = objB;
 
            objA = null;
            objB = null;
 
            System.gc();
    }
}

上述代码最后面两句将objA和objB赋值为null,也就是说objA和objB指向的对象已经不可能再被访问,但是由于它们互相引用对方,导致它们的引用计数器都不为 0,那么垃圾收集器就永远不会回收它们。


版权声明:本文为CSDN博主「rocling」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/rocling/article/details/103160099
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值