java遇见的问题分析

下面就一些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方法的话是可以被调用的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/289826.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linq中的castT()及OfTypeT()

DataTable dt...........//获取从数据库中取出的数据(假设只有一条记录) //Cast<T>()用来将非泛型的序列转换为泛型的序列 DataRow rowdt.Rows.Cast<DataRow>().Single(); //OfType<T>():用来将序列中可以转换的转换为指定的序列 如&#xff1a;一个object数…

Jar包转成Dll的方式(带嵌套的jar也能做) (转)

研究很好几天&#xff0c;终于成功了。因为写了一个Java的项目&#xff0c;现在要求要改写成C#版本的。但是其中用到了svnkit&#xff0c;svnkit是java平台的。改写成C#的话&#xff0c;要使用SharpSVN,但是SharpSVN的API文档真的很不专业。看来看去还是svnkit比较好。所以打算…

Blazor University (5)组件 — 字面量、表达式和指令

原文链接&#xff1a;https://blazor-university.com/components/literals-expressions-and-directives/字面量、表达式和指令源代码[1]请注意&#xff0c;本节一般不涵盖 Razor 标记。它不会涵盖诸如条件输出、循环等内容。该主题在网络和书籍中的其他地方得到了广泛的介绍。使…

linux之/usr/local/bin和/usr/bin区别

1、问题 我们一般习惯把**.py文件放到/usr/local/bin这个目录下面去&#xff0c;然后可以在linux系统里面任意一个目录执行这个python文件&#xff0c;然后和/usr/bin/这个目录一般有啥区别&#xff1f; 2、区别 usr 指 Unix System Resource&#xff0c;/usr 目录包含所有的命…

java metrics 简书_Spring Boot Metrics

Spring Metricshttps://docs.spring.io/spring-metrics/docs/current/public/prometheusSpring Boot Metrics监控之Prometheus&Grafana - 简书https://www.jianshu.com/p/afc3759e75b9Metrics教程 - 简书https://www.jianshu.com/p/effe8e259d25Java监控类库Metrics - Fang…

磨刀不误砍柴工

1.emulator n. 仿真器&#xff0c;模拟器&#xff1b;竞争者 网络释义 专业释义 英英释义仿真设备 竞争者 硬件仿真器 模仿器 短语Emulator ROMs 模拟器游戏大全Network Emulator 网络仿真器 ; 网络模拟器emulator command 仿真器命令 2.variogramn.变差函数&#xff0c;变…

.NET6之MiniAPI(二十七):Metrics

应用的各种Metrics是保证应用健康稳定运行的基础&#xff0c;特别对于一些可用性有所要求的应用&#xff0c;本文介绍prometheus-net这个三方指示库。prometheus-net的工作原理是&#xff0c;在应用内部埋点&#xff0c;通过prometheus采集数据&#xff0c;然后通过grafana把采…

面向对象的优点

符合人类的思维习惯,使客户和软件设计人员之间,软件开发人员内部交流更加流畅,同时有代码重用性高,可靠性高等优点,大大提高了软件的设计和开发效率转载于:https://www.cnblogs.com/Allen974103107/p/4979596.html

解决 web.xml is missing and failOnMissingWebXml is set to true 报错

在学习maven模块化构建项目的时候遇到了如下报错信息&#xff1a; web.xml is missing and <failOnMissingWebXml> is set to true。 这时候需要右击项目——>Java EE Tools——>Generate Deployment Descriptor Stub.然后系统会在src/main/webapp/WEB_INF文件加下…

Swift游戏实战-跑酷熊猫 01 创建工程导入素材

原文:Swift游戏实战-跑酷熊猫 01 创建工程导入素材在这节里&#xff0c;我们将建立一个游戏工程&#xff0c;并导入一些必要的素材&#xff0c;例如序列帧动画文件&#xff0c;声音素材文件。动画文件我们使用atlas形式。在打包发布或者模拟器测试的时候&#xff0c;它会将整个…

【ArcGIS风暴】ArcGIS获取一个省各个地区界内的河流的总长度--以甘肃省为例

【问题分析】实际工作中,我们经常需要进行统计分析,如统计甘肃省各个地区界内的河流、公路、铁路等的总长度,统计各个地区界内总人口、作物产量、村镇分布等等。ArcGIS提供了强大的空间统计功能,可以一次性操作完成所有操作,省时省力,大大提高了工作效率,减少了错误的发…

回溯算法之布罗夫卫队(最大团问题)

1、问题 在原始部落中,由于食物缺乏,部落居民经常因为争夺猎物发生冲突,几乎每个居民都 有自己的仇敌。部落酋长为了组织一支保卫部落的卫队,希望从居民中选出最多的居民加入 卫队,并保证卫队中任何两个人都不是仇敌。假设已给定部落中居民间的仇敌关系图,编程 计算构建部落护…

java中find方法_Java Document.find方法代码示例

import com.allanbank.mongodb.bson.Document; //导入方法依赖的package包/类/*** Extract the number of seconds this Server is behind the primary by* comparing its latest optime with that of the absolute latest optime.* * To account for idle servers we use the …

Ajax:一种网页开发技术(Asynchronous Javascript + XML)

创建新的 XMLHttpRequest 对象(Ajax 应用程序的核心):<script language"javascript" type"text/javascript">var xmlHttp new XMLHttpRequest(); </script> 用 JavaScript 代码捕获和设置字段值 //获取 id 值为 first_name 的表单域 var name…

microdot - 一个开源 .NET 微服务框架。

简介Microdot 是一个开源 .NET 框架&#xff0c;可满足轻松创建微服务的许多需求。它的一些主要特点•用于托管微服务的服务容器•服务间 RPC&#xff0c;便于基于接口的服务通信•服务之间的客户端透明响应缓存•日志记录和分布式跟踪支持•客户端负载均衡和服务发现•详细的健…

U3D 如何计算一个UI四个角的绝对坐标

//方式一&#xff0c;使用API获取var rtrans gameObject.GetComponent<RectTransform>();Vector3[] worldcorners new Vector3[4];rtrans.GetWorldCorners(worldcorners);//方式二&#xff0c;手动计算var cam GameObject.Find("Camera").GetComponent<C…

回溯算法之购物车(0-1 背包问题)

1、问题(参考趣学算法) 央视有一个大型娱乐节目— 购物街,舞台上模拟超市大卖场,有很多货物,每个嘉宾分配一个购物车,可以尽情的装满购物车,购物车装的价值最高者取胜。假设 n 个物品和 1个购物车,每个物品 i 对应价值为 vi,重量 wi,购物车的容量为 W(你也可以将重量设定为体…

slider控件控制文本框字体大小

1.控件代码 <pre name"code" class"csharp"> <Slider x:Name"slider1" HorizontalAlignment"Left" Margin"0,261,0,0" VerticalAlignment"Top" Width"446" ValueChanged"Slid…

争时金融java_Java高并发编程基础之AQS

引言曾经有一道比较比较经典的面试题“你能够说说java的并发包下面有哪些常见的类&#xff1f;”大多数人应该都可以说出CountDownLatch、CyclicBarrier、Sempahore多线程并发三大利器。这三大利器都是通过AbstractQueuedSynchronizer抽象类(下面简写AQS)来实现的&#xff0c;所…

Android UI设计系统-android selector 开始自定义样式

Selector的结构描述&#xff1a; <?xml version"1.0" encoding"utf-8"?> <selector xmlns:android"http://schemas.android.com/apk/res/android" > <item android:color"hex_color" android:state_pressed"tru…