JAVA每日一旅2

1.关于类型转换

两个数值进行二元操作时,会有如下的转换操作:

如果两个操作数其中有一个是double类型,另一个操作就会转换为double类型。

否则,如果其中一个操作数是float类型,另一个将会转换为float类型。

否则,如果其中一个操作数是long类型,另一个会转换为long类型。

否则,两个操作数都转换为int类型。

2.关于重写和重载

重载(overload):只要方法名一致,其他(参数列表、返回值)随意。

重写(overriding):只有实现的功能代码不一致 ,其他的(函数名、参数列表、返回值类型)必须都一致。

3.string类和stringbuffer类

StringBuffer类调用toString()方法后将转换为String类型。
 String类型中没有append()方法。
 可以直接将字符串复制给声明的Stirng类的变量,而StringBuffer类的不行。

string类不可改变,但可以共享,stringbuffer类可以改变。

4.toUpperCase()

toUpperCase()会对当前对象进行检查 如果不需要转换直接返回当前对象,否则new一个新对象返回。

5.关于JVM堆内存溢出

简单的来说 java的堆内存分为两块:permantspace(持久带) 和 heap space。

持久带中主要存放用于存放静态类型数据,如 Java Class, Method 等, 与垃圾收集器要收集的Java对象关系不大。

而heapspace分为年轻带和年老带

年轻代的垃圾回收叫 Young GC, 年老代的垃圾回收叫 Full GC。

在年轻代中经历了N次(可配置)垃圾回收后仍然存活的对象,就会被复制到年老代中。因此,可以认为年老代中存放的都是一些生命周期较长的对象。

年老代溢出原因有循环上万次的字符串处理、创建上千万个对象、在一段代码内申请上百M甚至上G的内存。

持久代溢出原因是动态加载了大量Java类而导致溢出。

时间: 2024-12-25 12:05:11

JAVA每日一旅2的相关文章

JAVA每日一旅3

1.关于byte byte在内存中占一个字节,范围是-128-127,128作强制类型转换到byte变成-128,因为128的二进制表示:1000 0000,最高位是符号位. 2.关于Hibernate(先记下笔记,目前还没学到) 尽量使用many-to-one,避免使用单项one-to-many. 灵活使用单向one-to-many. 不用一对一,使用多对一代替一对一. 配置对象缓存,不使用集合缓存. 一对多使用Bag 多对一使用Set. 继承使用显示多态 HQL:from object po

java每日小算法(27)

/* [程序27]  题目:求100之内的素数    */ package test; import java.util.Scanner; public class test { public static boolean prime(int number) { boolean flag = true; int mid = (int)Math.sqrt(number); for(int i = 2; i< mid+1; i++) { if(number % i == 0) { flag = fa

java每日小算法(4)

[程序4] 题目:将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5. 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可. (2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步. (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步. package test; import java.util.ArrayList;

【Java每日一题】20161103

package Nov2016; import java.util.List; public class Ques1103 { public void method01(String[] array){} public void method01(Integer[] array){} public void method02(List<String> list){} public void method02(List<Integer> list){} } 今日问题: 请问主程序能否

【Java每日一题】20170321

20170320问题解析请点击今日问题下方的"[Java每日一题]20170321"查看(问题解析在公众号首发,公众号ID:weknow619) package Mar2017; public class Ques0321 { public static void main(String[] args) { Ques0321 test = new Ques0321(); test.method(null); } public void method(Object o) { System

【Java每日一题】20170109

20170106问题解析请点击今日问题下方的"[Java每日一题]20170109"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; import java.util.ArrayList; import java.util.List; public class Ques0109<T> { private T t = new T(); private T[] array = new T[3]; private List<T&

【Java每日一题】20161212

package Dec2016;      public class Ques1212 {      public static void main(String[] args){          System.out.println(10.00-9.60);      }   } 今日问题: 请问主程序中输出结果是什么?(点击以下"[Java每日一题]20161212"查看20161209问题解析) 题目原发布于公众号.简书:[Java每日一题]20161212,[Java每日一题

【Java每日一题】20161201

20161130问题解析请点击今日问题下方的"[Java每日一题]20161201"查看 package Dec2016; public class Ques1201 { public static void main(String[] args) { new Ques1201().sum(1, 2); } public void sum(int num1, int num2){ int temp = num1 + num2; System.out.println("没使用变

【Java每日一题】20161130

20161129问题解析请点击今日问题下方的"[Java每日一题]20161130"查看 package Nov2016; public class Ques1130 { public static void main(String[] args) { int i = 1; Ques1130.test(i); Ques1130.test(Integer.valueOf(i)); } public static void test(long n){ System.out.println(