大家好,今天小编关注到一个比较有意思的话题,就是关于java语言容器的问题,于是小编就整理了2个相关介绍j***a语言容器的解答,让我们一起看看吧。
j***a怎么获取当前机器ip和容器port?
Docker启动的容器是没有带有主机IP信息的。所以,唯一的办法就是需要通过参数方式传入才可以让容器获得。从实践的角度来说,容器技术是一种隔离技术,自身并没有网络体系,需要你自己构建网络环境,所以动态的获取宿主机的IP还需要知道你的基础环境用的是什么。比如你现在用的是K8S环境,在这个上面,获得容器落在哪台主机上是很方便的。通过kubectl get po xxx -o yaml,就可以获得。
为什么j***a的容器存的时候已经实例化了一个对象,取的时候还要强转?
首先取的时候不需要强转。。。。你说的因该是需要调用他的属性或者方法的时候。主要原因就是因为j***a是强类型语言。编译器强制你需要转换。换成js就不需要了。你不强转编译器看不懂你的代码而已。
要想知道问题的答案,那么需要先阅读一下,ArrayList的源码。
仔细阅读的话,你会发现ArrayList其实是***用数组来保存data的,而这个数组的类型是Object
/**
* The array buffer into which the elements of the ArrayList are stored.
* The capacity of the ArrayList is the length of this array buffer. Any
* empty ArrayList with elementData == DEFAULTCAPACITY_EMPTY_ELEMENTDATA
* will be expanded to DEFAULT_CAPACITY when the first element is added.
*/
transient Object[] elementData; // non-private to simplify nested class access
也就是说不管你是否有范型,保存的对象都是Object类型(Object类是所有类的父类,需要理解一下继承的概念),那么取出来的时候,就是Object类型,只不过指定范型的时候,会强转。
到此,以上就是小编对于j***a语言容器的问题就介绍到这了,希望介绍关于j***a语言容器的2点解答对大家有用。