
1、java基础
文章平均质量分 74
java基础
shining曙光
这个作者很懒,什么都没留下…
展开
-
java基础--1、java面向对象
一、java面向对象的三大特征1、封装(Encapsulation)封转是指属性私有化根据需要提供setter和getter方法来访问属性隐藏具体属性和实现细节,仅对外开放接口控制程序中属性的访问级别目的:增强数据安全性,不能让其他用户随意访问和修改数据,简化编程,使用者不必在意具体实现细节,而只是通过外部接口即可访问类的成员2、继承(Extend)继承是指将多个相同的属性和方法提取出来,新建一个父类java中一个类只能继承一个父类,且只能继承访问权限非private属性和方法子类可以重转载 2021-03-27 14:08:41 · 117 阅读 · 0 评论 -
java基础--2反射
1、概念1)动态语言动态语言是一类在运行时可以改变其结构的语言:例如新的函数,对象,甚至代码可以被引进,已有的函数可以被删除或是其它结构上的变化。通俗点说就是在运行时代码可以根据某些条件改变自身结构主要的动态语言有:Object-c、C#、JavaScript、PHP、Python等2) 静态语言与动态语言相比,运行时结构不可变的语言就是静态语言。例如Java、C、C++Java不是动态语言,但是Java可以称为“准动态语言”。即Java有一定的动态性,我们可以利用反射机制来获取类似于动态语言的原创 2021-03-27 13:48:07 · 144 阅读 · 0 评论 -
java基础--5HashMap专题
1、Hash的概念将任意长度的输入通过散列算法之后映射成固定长度的输出。2、Hash冲突当关键字集合很大时(key的数量很多的时候),关键字值不同的元素可能会映像到哈希表的同一地址上,即K1!=K2,但f(K1)=f(K2),这种现象称为hash冲突,实际中冲突是不可避免的,只能通过改进哈希函数的性能来减少冲突。3、你认为好的Hash算法的点应该有哪些?(1)效率得高,做到长文本也能高效计算出Hash值(2)根据Hash值不能逆推出原文(3)两次输入,如果有一点不同也得保证Hash值转载 2020-12-21 21:44:30 · 193 阅读 · 0 评论 -
java基础--4集合(List|Set|Map)
1、hashmap1.7 数组+链表先根据key值计算出hash值以及h值(h值是java实现中处理得到的更优的index索引值)查找table数组中的h位置,得到相应的键值对链表根据key值,遍历键值对链表,找到相应的键值对 (时间复杂度O(n))从键值对中取出value值1.8 数组+链表+红黑树当链表中的元素超过了 8 个以后,会将链表转换为红黑树,在这些位置进行查找的时候可以降低时间复杂度为 O(logN)。Java7 中使用 Entry 来代表每个 HashMap 中的数据节点,原创 2020-12-03 19:31:19 · 154 阅读 · 0 评论 -
java基础--3动态代理
动态代理是什么动态代理提供一种抽象,能够将对象中不同方法的调用重定向到一个统一的处理函数,做自定义的逻辑处理。但是对于调用者,对此毫无察觉,就好像调用的方法是用传统方式实现的一般。这种语法,在java中被称为动态代理。之所以叫做动态代理,是因为它能避免传统代理模式实现中人工一个一个的将java函数转发过去,而是能够让代码自动做到这一点,这样代理类的代码是和业务无关的,不会因为业务类的方法增多而逐渐庞大。使代码更易维护更易修改,实现自动化搬砖。实际上,被代理的类不一定位于本机类,动态代理语法提.原创 2020-12-03 17:24:34 · 109 阅读 · 0 评论