下面就一些java的一些基本问题进行解释。其中蓝色部分为handsomecui的主观看法

一.synchronized(obj)里面的参数怎么解释?

synchronized的参数代表的是“对象锁”代表的是不同的线程在synchronized块里,
同时只有一个线程能执行该代码块,而类的不同实例之间是互不影响的。
比如Person A = new Person(),Person B = new Person().A和B之间是不受synchronized制约的。

二.创建线程有哪几种方法?

  有三种方式可以用来创建线程:

   1.继承Thread类

   2.实现Runnable接口

   3.应用程序可以使用Executor框架来创建线程池

三. ”static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法?

  “static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问。

  Java中static方法不能被覆盖,因为方法覆盖是基于运行时动态绑定的,而static方法是编译时静态绑定的。

  static方法跟类的任何实例都不相关,所以概念上不适用。

四.是否可以在static环境中访问非static变量?

  static变量在Java中是属于类的,它在所有的实例中的值是一样的。

  当类被Java虚拟机载入的时候,会对static变量进行初始化。

  如果你的代码尝试不用实例来访问非static的变量,编译器会报错,因为这些变量还没有被创建出来,还没有跟任何实例关联上。

  (注意,非static变量是实例化后才被创建,而static变量是类创建时就被创建)

五.int与Integer的区别:

  int 是基本数据类型
  Integer是其包装类,注意是一个类。
  为什么要提供包装类呢???
  1.为了在各种类型间转化,通过各种方法的调用。否则 你无法直接通过变量转化。例如int x = Integer.valueOf("66");

  2.泛型 List<Integer> nums;
    这里<>需要类,要用Integer

六.Java中intValue,parseInt,Valueof 这三个关键字的区别?

   int a = Integer.parseInt("123");(相当于把“123”转化为基本数据)
     Integer b = Integer.valueOf("123");(相当于把“123”转化为一个Integer对象)
     int c = b.intValue();(将123的对象表示形式转化为基本数据123)

  也就是 Integer.valueOf("123").intValue() 等价于 Integer.parseInt("123")

七.java不支持多继承,但可以实现多个接口。

八.synchronized用在方法上级别是粗粒度锁,用在代码块上是细粒度锁。

九.Java集合类框架的基本接口有哪些?

  • Collection:代表一组对象,每一个对象都是它的子元素。
  • Set:不包含重复元素的Collection。
  • List:有顺序的collection,并且可以包含重复元素。
  • Map:可以把键(key)映射到值(value)的对象,键不能重复。

  ArrayList和 LinkedList 实现了List接口,HashSet实现了Set接口,这几个都比较常用;

  HashMap 和HashTable实现了Map接口,并且HashTable是线程安全的,但是HashMap性能更好

  

  java.util.Collection [I]

  |—java.util.List [I]|—java.util.ArrayList [C]|—java.util.LinkedList [C]|—java.util.Vector [C]|—java.util.Stack [C]|—java.util.Set [I]|—java.util.HashSet [C]|—java.util.SortedSet [I]|—java.util.TreeSet [C]

  java.util.Map [I]

  |—java.util.SortedMap [I]|—java.util.TreeMap [C]|—java.util.Hashtable [C]|—java.util.HashMap [C]|—java.util.LinkedHashMap [C]|—java.util.WeakHashMap [C] 

十.接口和抽象类的区别是什么?

Java提供和支持创建抽象类和接口。它们的实现有共同点,不同点在于:

  • 接口中所有的方法隐含的都是抽象的。而抽象类则可以同时包含抽象和非抽象的方法。
  • 类可以实现很多个接口,但是只能继承一个抽象类
  • 类如果要实现一个接口,它必须要实现接口声明的所有方法。但是,类可以不实现抽象类声明的所有方法,当然,在这种情况下,类也必须得声明成是抽象的。
  • 抽象类可以在不提供接口方法实现的情况下实现接口。
  • Java接口中声明的变量默认都是final的。抽象类可以包含非final的变量。
  • Java接口中的成员函数默认是public的。抽象类的成员函数可以是private,protected或者是public。
  • 接口是绝对抽象的,不可以被实例化。抽象类也不可以被实例化,但是,如果它包含main方法的话是可以被调用的。

java遇见的问题分析相关推荐

  1. Java异常的性能分析

    Java异常的性能分析 参考文章: (1)Java异常的性能分析 (2)https://www.cnblogs.com/grefr/p/6089116.html 备忘一下.

  2. java.lang.ArrayIndexOutOfBoundsException异常分析及解决

    2019独角兽企业重金招聘Python工程师标准>>> java.lang.ArrayIndexOutOfBoundsException异常分析及解决 这是一个非常常见的异常,从名字 ...

  3. java超线程_超线程多核心下Java多线程编程技术分析

    在学习编程的过程中,我觉得不止要获得课本的知识,更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,本文主要讲述超线程多核心下Java多线程编程技术分析,更多Java专业知识,广州疯狂 ...

  4. 深入理解Java虚拟机-Java内存区域透彻分析

    Java虚拟机深入理解系列全部文章更新中- 深入理解Java虚拟机-Java内存区域透彻分析 深入理解Java虚拟机-常用vm参数分析 深入理解Java虚拟机-JVM内存分配与回收策略原理,从此告别J ...

  5. 深入理解Java中的逃逸分析

    转载自  深入理解Java中的逃逸分析 在Java的编译体系中,一个Java的源代码文件变成计算机可执行的机器指令的过程中,需要经过两段编译,第一段是把.java文件转换成.class文件.第二段编译 ...

  6. jmap, jhat, jvisualvm:java堆内存对象分析利器

    转载自 jmap, jhat, jvisualvm:java堆内存对象分析利器 jmap -help查看命令用法. jmap -heap <pid> 查看堆使用情况. jmap -dump ...

  7. java遇上html,JAVA遇见HTML——JSP篇:JSP内置对象(上)

    JSP九大内置对象 JSP内置对象是Web容器创建的一组对象,不使用new关键就可以使用的内置对象. int[] value={60,70,80}; for(int i:value){ out.pri ...

  8. 一个html页面上显示dopost,Java遇见HTML-servlet(一)

    Java遇见HTML的6篇文章技术较老只是在熟悉java基础知识和了解mvc模型思想 servlet的应用 servlet可以理解为就是一个jsp,实现servlet有三步: 1.在web.xml中注 ...

  9. Java类加载过程内存分析

    Java类加载过程内存分析 Java类加载过程 编译 类的加载 类加载器 运行时数据区 执行引擎 Java类加载过程 具体过程如下: 编译 首先Java源代码会被编译器编译成class文件以供计算机执 ...

最新文章

  1. Syncthing源码解析 - 第三方库
  2. 阿里云实时计算的前世“功”今生“能”
  3. mina处理断包和粘包
  4. cf769D(枚举位或运算)
  5. Android 各控件的使用 - 按钮(Button)
  6. Launcher结构之home screen
  7. nfine框架 上传文件_MVC之Struts2框架--你并不了解的高级应用
  8. fastboot no permission
  9. 剖析 epoll ET/LT 触发方式的性能差异误解(定性分析)
  10. 获取服务器的wsdl文件,vb.net根据wsdl文件生成WebService服务器端代码
  11. 实现工地实名制门禁管理的人脸识别系统
  12. Win10中英文切换 win键+空格
  13. iOS 初中级工程师简历指北
  14. 交大『云观CD-ROMIII』直接由CD-ROM执行之安装法(转)
  15. Spring Cloud Alibaba——Nacos服务配置中心
  16. Excel表格转为Latex图表
  17. ROS安装/// rosdep update/the read operation is timed out
  18. 用for循环解决鸡兔同笼问题:上有三十五头,下有九十四足,问雉兔各几何?
  19. 【亲测】独家更新CcPay多商户码支付系统,码支付易支付+个人支付宝微信二维码收款app监控+搭建教程
  20. 汇编跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等

热门文章

  1. (字节/华为/美团)前端面经记录冷冷清清的金三银四
  2. 如何创建一份springboot的docker镜像
  3. shell在一个大文件找出想要的一段字符串操作技巧
  4. MSSQLSERVER启动不了,报SQL Server 无法生成 FRunCM 线程
  5. Hibernate type 与java 和 数据库类型对应
  6. 怎么安装SharePoint2013 preview 在SQL2012 和 Windows Server 2008 R2 SP1
  7. shell对于字符串的操作
  8. PHP Token(令牌)设计
  9. MySQL外键创建失败1005原因总结
  10. leetcode(34)在排序数组中查找元素的第一个和最后一个位置