JAVA基础
文章平均质量分 69
万小猿
这个作者很懒,什么都没留下…
展开
-
泛型的意义与通配符理解
一、泛型的含义泛型是JDK1.5出现的一种新特性,主要用来解决对象类型不确定的问题。其中泛型可以用在类、接口、方法中,分别称为泛型类、泛型接口、泛型方法。1.泛型类(具有一个或者多个泛型变量的类)2.泛型接口(具有一个或者多个泛型变量的接口)3.泛型方法(具有一个或者多个泛型变量的方法)核心目标:解决容器类型在编译时安全检查的问题比如这个我们规定了要传入String,但是代码中只是传入了int,所以会报错,直接在编译期间报错。只是在编译...原创 2021-11-13 13:51:11 · 1196 阅读 · 0 评论 -
Scanner类(next,nextLine,nextInt)的用法与常见问题
一、常见的方法.next():1、一定要读取到有效字符后才可以结束输入。 2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。 3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。 next() 不能得到带有空格的字符串。.nextInt():这个方法跟next()一直,只是规定了数据类型是Int。.nextLine():1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。 2、可以获得空白。二、常见的问原创 2021-08-14 23:26:21 · 3273 阅读 · 0 评论 -
java代码执行效率分析
1.首先说出java代码执行的过程: (1).编写:是指在 Java 开发环境中进行程序代码的输入,最终形成后缀名为 .java 的 Java 源文件。(2).编译:是指使用 Java 编译器对源文件进行错误排査的过程,编译后将生成后缀名为 .class 的字节码文件,不像C语言那样生成可执行文件。(3).运行:是指使用 Java 解释器将字节码文件翻译成机器代码,执行并显示结果。2.说出执行效率的含义时间少,内存少,线程切换少等等。那些方式可以提高代码的效率:(1)代码结...原创 2021-08-11 15:34:13 · 1230 阅读 · 0 评论 -
Integer与int的类型进行比较大小(超全的)
装箱:将基本类型用他们对应的引用类包装起来;拆箱:将引用类型转换为基本数据类型;例子如下: 1.new了,因此比较的是地址不相等; 2.装箱的时候用的是常量池的地址3.装箱的时候用的是常量池的地址4.成为200后就不相等了。在给Integer赋值时,实际上是自动装箱的过程,也就是调用了Integer.valueOf(int)方法,当这个值大于等于-128并且小于等于127时使用了常量池,所以3的两个地址是相等的,但是4的两个超过了127,故不使用常量池。5....原创 2021-07-03 21:14:34 · 3730 阅读 · 0 评论 -
反射机制,从为什么讲起,更容易接受
反射是一个比较生涩难懂的概念,为了形象,我先举一个例子,我们有时候项目中会用mysql,有时会用到sqlserver等数据库。我们实际情况是需要哪个驱动类才会去加载,不会把这些数据库加载驱动都加载到JVM里面,如果都加载,岂不是JVM可用的内存就少了,这对服务器来说就很难受了,内存中存在一些经常不用的驱动类。 因此我们需要在动态去加载我们需要的驱动。如果不是动态加载,如果静态加载的话,那么就是这样的情况,要切换数据库驱动的时候,我们就把服务停下来,new一个需要的驱动,这对用户来说体验极差,肯定不...原创 2021-04-14 15:46:41 · 152 阅读 · 0 评论 -
Java多线程讲解,超详细!可获取相关笔记
七、多线程7.1什么是线程和进程?7.1.1进程进程是程序的一次执行过程,是系统运行的基本单位,因此进程是动态的(很多次执行)。系统运行一个程序是一个进程创建、运行到消亡的过程。在JAVA中,当我们启动Main函数其实就是启动了一个JVM的进程,而Main函数所在的线程就是这个进程中的一个线程,也称为主线程。在Windows中,我们可以通过任务管理器看我们电脑运行着这那些进程。7.1.2线程线程与进程相似,但线程是一个比进程更小的执行单位。一个进程在其执行过程中可以产生多个线程.原创 2021-03-23 21:10:24 · 4690 阅读 · 2 评论 -
快速突破算法之位运算
一、前言:什么是位运算位运算的运算分量只能是整型或字符型数据,位运算把运算对象看作是由二进位组成的位串信息,按位完成指定的运算,得到位串信息的结果。从现代计算机中所有的数据二进制的形式存储在设备中。计算机对二进制数据进行的运算(+、-、*、/)都是叫位运算,即符号位共同参与运算的运算。举一个简单的例子来看一下是如何进行计算的,比如这行代码:int a=30;int b=42;int c=a+b;计算两个数的和,因为在计算机中都是以二进制来进行运算,所以上面我们所给的int变量会在原创 2021-02-10 21:48:56 · 851 阅读 · 0 评论 -
看完不后悔系列,SQL语句执行慢怎么办,原因总结!!
一、开始装逼:分类讨论1.大多数情况是正常的,只是偶尔会出现很慢的情况。2.在数据量不变的情况下,这条SQL语句一直以来都执行的很慢。二、针对偶尔很慢的情况一条SQL大多数情况正常,偶尔才能出现很慢的情况,针对这种情况,我觉得这条SQL的书写本来是没有问题的,而是其他原因导致,那会是什么原因呢?1.数据库在刷新4脏页(flush)我也无奈啊当我们要往数据库插入一条数据、或者更新一条数据的时候,我们知道数据会在内存中把对应字段的数据更新了,但是更新之后,这些更新的字段并...原创 2021-02-10 14:46:01 · 2067 阅读 · 1 评论 -
Java对象创建过程
STEP1:类加载检查虚拟机遇到一条 new指令的时候,首先去常量池中检查该对象的符号引用,并检查该引用是否被加载过、初始化过、解析过。如果没有,就要去执行类加载过程。STEP2:分配内存在类加载检查通过后,接下来虚拟机将为新生对象分配内存。对象所需的内存大小在类加载完成后便可确定。分配方式有两种:”指针碰撞”和“空闲列表”两种,选择那种分配方式由Java堆是否规整决定,而 Java堆是否规整又由所采用的垃圾收集器是否带有压缩整理功能所决定。指针碰撞:适用场合:堆内存规整(没有内存...原创 2021-02-10 14:37:38 · 221 阅读 · 2 评论 -
三次握手四次挥手必掌握,看了绝对不吃亏!
TCP三次握手和四次挥手三次握手TCP是运输层的协议,所以该协议为了保证运输的准确性。然后进行三次握手。SYN(确认发送到接收):同步序列编号,是TCP/IP建立连接时使用的握手信息。ACK(确认接收到发送):确认字符,表示发来的数据已经确认无误。既然是传输的TCP报文,那么我们来看看TCP报文长什么样子!第一次客户端发送:客户机发起连接请求,将SYN(同步序列编号)位设置为1,同时客户端选择了一个初始序列号x,并存在TCP报文段的序号中。第二次服务端发送:服务端接收原创 2021-02-10 14:13:37 · 245 阅读 · 0 评论 -
PO、VO、BO、DTO通俗理解(附加代码讲解)
PO、VO、BO、DTO通俗理解(附加代码讲解)前言:开胃菜 对于一个初学程序的小白面对这么多专业名词可能有些困惑,但是不要怕,请让万小猿带你一一揭开谜题。 概念的东西砸门不喜欢,直接上硬货!!!(这是我看了许多资料总结的,可能会存在偏差,请大家积极指出!)准备:对象你真的了解吗? 对象,是什么?你真的清楚吗?尽管你有帅,没有对象也很惨啊~~~~~ 对象是描述一个事物的抽象概念, 看到这抽象是不是突然有些看不下去了。放心了,身为一个幽默的万小猿怎么会说这些抽...原创 2021-01-12 15:53:47 · 36110 阅读 · 18 评论 -
常用集合(ArrayList、Hashset、HashMap)的用法(会一直更新)
ArrayList add 是直接将想要加入的数据加入到list中,加入之前会进行是否扩容检查。get的字面意思是获得。所以是获取想要下标的arraylist数组的值。Hashmap的底层是由数组+链表结构(链表负责存储数据,实现了内部的Rntry<K,V>接口)put 方法是将键值的旧值被新值覆盖,如果没有出现键值那就直接初始化下一个链表,如果存在的话,覆盖。get方法,遇到hash值一样返回当前索引的Node,节点不一样那就继续遍历直到相等或为null。...原创 2020-11-03 19:00:38 · 533 阅读 · 0 评论 -
|、||、&、&&的区别
| &几乎每个编程语言都是一样的含义,或 和与。或就是其中有一个就行,与是两个都要满足才行。|与||的对比一道竖杠和两道竖杠有什么区别呢。 一道竖杠就是执行一个条件语句的时候,无论第一个条件是否满足,都要执行第二个。例如:打印出来是2。两道竖杠||如果第一个条件语句判定成功后,第二个条件语句就不会执行了,例如:打印出来的是1.因为3>2所以就可以判定条件为真,不会执行i++。所以打印的1。这样来说两道横杠的效率是要比一道横杠的效率高的,更智能的。&与&&am原创 2020-10-31 11:59:12 · 6319 阅读 · 1 评论 -
JAVA的抽象类和接口
1、抽象类与接口的区别一.语法上的区别1.抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract 方法;2.抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型;3.接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法;4.一个类只能继承一个抽象类,而一个类却可以实现多个接口。现在在IDEA分别对以上特点进行调试:1.抽象类可以存在普通的方法,并有body块。重点是抽象类可以写普通类例如An原创 2020-10-21 15:01:22 · 189 阅读 · 0 评论 -
JAVA的对象创建与调用的内存解析
两个对象的内存调用调用的步骤跟第一个对象的调用是一样的,执行到第二个对象的时候就跟第一个是一样的。对象作为参数的内存图解这里的showAge 调用的stu是student的类的引用,这里比C++优化了,C++如果不加引用&符号的话,它是采用一个对象的复本极其占用内存,但是JAVA里直接用的是引用,采用指针调用数据,很香!!!...原创 2020-10-18 16:59:44 · 286 阅读 · 0 评论