Java总结

  • java中有三种移为运算符
  1. <<:左移运算符,num<<1,相当于num除以2
  2. >>:右移运算符,num>>1,相当于num乘以2
  3. >>>:无符号右移,忽略符号位,空位都以0补齐
  • 泛型
  1. 创建泛型对象的时候,一定要指出类型变量T的具体类型。争取让编译器检查出错误,而不是留给JVM运行的时候抛出类不匹配的异常。
  2. JVM如何理解泛型概念 —— 类型擦除。事实上,JVM并不知道泛型,所有的泛型在编译阶段就已经被处理成了普通类和方法。 处理方法很简单,我们叫做类型变量T的擦除(erased) 。 总结:泛型代码与JVM ① 虚拟机中没有泛型,只有普通类和方法。 ② 在编译阶段,所有泛型类的类型参数都会被Object或者它们的限定边界来替换。(类型擦除) ③ 在继承泛型类型的时候,桥方法的合成是为了避免类型变量擦除所带来的多态灾难。 无论我们如何定义一个泛型类型,相应的都会有一个原始类型被自动提供。原始类型的名字就是擦除类型参数的泛型类型的名字。
  • 参数传递
  1. 基本类型变量:传递值的副本(副本变,本身不变)
  2. 对象变量:传递引用的副本(副本变,本身也变)【即复制指向地址的指针】
  3. 不论Java参数的类型是什么,一律传递的都是参数的副本
  • Java鲁棒性的特点如下:
  1. Java在编译和运行程序时都要对可能出现的问题进行检查,以防止错误的产生;
  2. Java编译器可以查出许多其他语言运行时才能发现的错误;
  3. Java不支持指针操作,大大减少了错误发生的可能性;
  4. Java具有异常处理的功能,当程序异常时,它能捕获并响应意外情况,以保证程序能稳妥地结束,计算机系统不会崩溃;而Java能运行虚拟机实现跨平台是Java的与平台无关性的特点。
  • JRE与JDK
  1. JRE(Java Runtime Environment):Java运行时环境,包含了JVM,Java基础类库。是使用Java语言编写程序运行的所需环境
  2. JDK(Java Development Kit):Java开发工具包,提供给Java程序员使用,包含了JRE,同时还包含了编译器javac与自带的调试工具Jconsole、jstack
  • java的GC回收是完全自动的,没有提供相关api手动回收,所有的内存分配和回收权限都在jvm,在开发人员手里没有绝对的强制垃圾回收的方法,不过可以这样去做:
  1. 对于不再引用的对象,及时把它的引用赋为null。 obj = null;
  2. 如果内存确实很紧张,调用System.gc() 方法来建议垃圾回收器开始回收垃圾,通知GC运行,但是Java语言规范并不保证GC一定会执行。
  • 方法重载与返回值无关,只与参数个数,类型有关
  • this可以让构造方法互相调用,但是调用参构造方法的语句,必须出现在构造方法的首行
  1. this()调用本类无参构造
  2. this(******)调用本类有参构造
  • java.exe——java虚拟机,执行编译好的.class文件
  • javac.exe——编译.java文件
  • javadoc.exe——java document生成java说明文档
  • javaprof.exe——java profile剖析工具
  • jdb.exe——java debug调试器
  • 互斥与同步
  1. 互斥:是通过竞争对资源的独占使用,彼此之间不需要知道对方的存在,执行顺序是一个乱序(如:多个面试者竞争同一个岗位)
  2. 同步:是协调多个线程相互关联的线程合作完成任务,彼此知道对方的存在,执行顺序往往有序(如:班上竞选班委)
  3. 线程同步方式有:临界区、互斥区、信号量、事件
  • Object类方法:
  1. Object()   构造方法
  2. getClass()
  3. hasCode()
  4. equals(Object)
  5. clone()
  6. toString()
  7. notify()
  8. notifyAll()
  9. wait(long)
  10. wait()
  11. finalize()
  • java里面JVM的机制在调用函数的时候仍然是进栈和出栈,所以极易导致栈内存溢出

错误类型    java.lang.StackOverflowError错误

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值