首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

你应该知道的Java垃圾收集器 - 串行、并行、CMS、G1

当我们谈论垃圾收集时,绝大多数人都知道这个概念,并在日常编程中使用它。即使如此,有关垃圾收集,我们很多人还是不太明白。关于JVM的一个最大的误解是它有一个垃圾收集器,其实它提供了四个不同的垃圾收集器,每一个都有自己独特的优点和缺点。重要的是,我们编程的时候可以通过JVM选择垃圾回收器类型。我们通过向JVM传递参数进行选择。每种类型在很大程度上有所不同并且可以为我们提供完全不同的应用程序性能。理解每种类型的垃圾回收器并且根据应用程序选择进行正确的选择是非常重要的。 这四种垃圾收集算法的共同点是,它们都是分

08

C++ 温习笔记(2) - extern,预处理命令#pragma,static

extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 在一个源文件里定义了一个数组:char a[6];   在另外一个文件里用下列语句进行了声明:extern char *a;   请问,这样可以吗?   答案与分析:   1)、不可以,程序运行时会告诉你非法访问。原因在于,指向类型T的指针并不等价于类型T的数组。extern char *a声明的是一个指针变量而不是字符数组,因此与实际的定义不同,从而造成运行时非法访问。应该将声明改为extern char a[ ]。   2)、例子分析如下,如果a[] = “abcd”,则外部变量a=0x61626364 (abcd的ASCII码值),*a显然没有意义   显然a指向的空间(0x61626364)没有意义,易出现非法内存访问。   3)、这提示我们,在使用extern时候要严格对应声明时的格式,在实际编程中,这样的错误屡见不鲜。   4)、extern用在变量声明中常常有这样一个作用,你在.c文件中声明了一个全局的变量,这个全局的变量如果要被引用,就放在.h中并用extern来声明。

01

Java编程工具类之String

知识回顾     0.System类    java.lang包     in  out对象属性    gc();  exit(0);     long time = currentTimeMillis();  获取当前系统时间--->1970-1-1 00:80:00  毫秒形式     1.Date类       java.util包   (java.sql)     无参数构造方法  new Date();    new Date(long time);     after();   before();   compareTo();     setTime()   getTime();        2.SimpleDateFormat类    java.text包     带String参数的构造方法    new SimpleDateFormat("yyyy-MM-dd KK:mm:ss");     String value = 对象.format(date);     3.Calender类    java.util包     需要通过类中的一个方法创建对象     Calender c = Calendar.newInstance();//默认当前系统时间的一个对象     after()  before()  setTime()  getTime()     set(Calender.YEAR,值);     get(Calender.YEAR);     getTimeInMillis();     getTimeZone();//获取对应的时区     4.TimeZone类   java.util包     需要通过类中的一个方法创建对象     TimeZone tz = TimeZone.getDefault();     getID();    getDisplayName();     String类---->引用类型    java.lang包 常见的String笔试题     ==  equals方法的区别     ==可以比较基本类型  可以比较引用类型     比较基本类型比较值 比较引用类型比较地址     equals只能比较引用类型(方法)     默认比较地址this==obj      如果想要修改其比较规则  可以重写equals方法     通常重写equals方法时会伴随着重写hashCode方法     比如String类  比如Integer  String的不可变特性     长度及内容     String与StringBuffer区别     StringBuffer与StringBuilder区别     String对象的存储     "abc"---->字符串常量池     new String("abc")--->堆内存     "a"+"b"+"c"+"d" String中常用的方法     1.存在哪儿   java.lang包        没有任何继承关系  实现三个接口Serializable, CharSequence, Comparable<String>     2.如何构建对象     String str = "abc"; //直接将字符串常量赋值给str   (字符串常量池)     String str = new String();//无参数构造方法创建空的对象     String str = new String("abc");//带string参数的构造方法创建对象     String str = new String(byte[] )//将数组中的每一个元素转化成对应的char 组合成String     String str = new String(char[] )//将数组中的每一个char元素拼接成最终的String     3.String的不可变特性     String类中包含一个private final char[] value;     体现在两个地方   长度及内容     长度--->final修饰的数组   数组长度本身不变  final修饰数组的地址也不变     内容--->private修饰的属性  不能在类的外部访问     *4.常用的方法     boolean = equals(Object obj);         //继承自Object 重写啦  比较两个字串中的字面值是否相等     int = hashCode();         //继承自Object 重写啦  将当前字符串的每一个char元素拆开 乘以31求和     int = compa

02
领券