选择排序 选择排序代码:for(int i = 0;i<ary.length-1;i++){//将数组最前面的数拿出来作为比较的那个数int mixIndex = i;int mix = ary[i];for(int j = i+1;j<ary.length;j++){count++;//与数组中所有的数进行比较将最小的数放在前面if(mix>ary[j]){mix = ary[j];mixIndex = j;}}if(mixIndex != i){ary[mixInde
冒泡排序 数组中前一位元素和后一位元素依次比较,如果前一位元素大于(或小于)后一位元素,就交换两元素的位置,这样就能保证最后在每一轮比较过后,后面的元素值是最大的。根据上面的图例我们可以推断出,当7个数排序时,我们需要进行6轮排序,每一轮排序中都能确定,这一轮中最大的数,而在每一轮排序中,需要比较的次数=数组的长度-当前轮数。解释一下7个数排序为什么需要进行6轮排序:每一轮都能确定在这一轮比较中最大的那个数,所以6轮比较完毕后,会确定出6个数的大小,但是剩余的最后一个数一定是最小的。因为我们在比较的过程中会把小
为什么float的字节小于long的字节数但是存储范围却比long的范围大 进行混合运算的时候 byte short char 不会相互转换 都会自动提升为int取值范围大小如下char < int < long < float <doubledouble的取值范围最大float的取值范围大于long虽然 long的长度为8个字节 float的长度为4个字节 但是他们底层的存储结构不同,所代表的数值大小也不同这是float型的存储方式float型数的存储方式其中,左边第一位为符号位,0表示正,1表示负。上图中sign为0,所以为正数。中间8
为什么Integer a = 127,b = 127;时a==b为true,而Integer c = 128,d = 128;时a==b为false? 可以看到low为-128,即if条件需要i在-128和127之间,那么返回i+128作为整型数组 cache的下标,用来放在缓存中。这样也就是说任意一个相同数值的Integer的数,如果在-128和127之间,那么它们之间的内存地址是相同的。这也就解释了为什么Integer a=127,b=127时候a==b返回true。而如果if条件不满足则返回new Integer(i)。即如果 数在 -128到127之间 就返回池子中的对象。没有的话就创建其实如果问题是这样的话Integer a = new
equals函数、hashCode函数、toString函数的作用 1.equals函数在什么地方在Object类中,写法与==一样,但是我们用的时候要重写这个equals方法String类型中的equals是复写好的2.equals函数的作用==号在比较两个引用类型时,比较的是两个引用是否指向的堆内存中的同一块地址equals比较的是两个对象的内容是否相等,对象的内容相等需要符合两个条件(1.对象的类型相同,可以使用instanceof操作符进行比较;2.两个对象的成员变量的值完全相同)3.复写equals函数class User(){public Str
为什么string被设置成不可更改的常量 1、 字符串池的需要字符串池(字符串内部池) 是在方法区域的特殊区域。当一个string被创建如果这个string已经在内存里面存在了,那个存在的string的引用被返回,而不是创建个新的对象和返回它的引用。2、 缓存哈希值在Java中,string的哈希值经常被用。举个例子,在HashMap中。保持不变,可以保证总是返回相同的哈希值。所以它可以被缓存而不用担心被改变。 这意味这不需要在使用的时候每次都计算哈希值。这将更高效。3、 使其他类的使用更加容易。4、 安全String 在很多java
string的特点 1.不变性不变性是指String对象一旦生成,则不能再对它进行改变。String的这个特性可以泛化成不变(immutable)模式,即一个对象的状态在对象被创建之后就不再发生变化。不变模式的主要作用在于,当一个对象需要被多线程共享,并且访问频繁时,可以省略同步和锁等待的时间,从而大幅提高系统性能。注意:不变性可以提高多线程访问的性能。因为对象不可变,因此对于所有线程都是只读的,多线程访问时,即使不加同步也不会产生数据的不一致,故减小了系统开销。由于不变性,一些看起来像是修改的操作,实际上都是依靠产生新
常见的final修饰的类 final可以修饰类、成员变量和成员方法被final修饰的类,不能被继承被final修饰的方法,不能被重写被final修饰的成员变量,不能被重新赋值(接口中的成员变量默认为public static final修饰的静态常量)String类为final修饰类,不能被继承常见的final修饰类:1、java.lang包中包装类:Boolean,Character,Short,Integer,Long,Float,Double,Byte,Void(八大类型的包装类型加一个void) 字符串
== 和 equals的 区别 在java中,equals和 == ** 的最大区别就是 (==)他是运算符java中的基本数据类型,也称原始数据类型。byte,short,char,int,long,float,double,boolean他们之间的比较,应用双等号(==),比较的是他们的值。当使用==来判断两个变量是否相等的时候,如果两个变量是基本类型变量,且都是数值类型,则只要两个变量的值相等就返回true。2.复合数据类型(类)当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来
二分法查找 /**二分法查找的前提,是数组是一个有序数组。*/public class BinarySearch {public static void main(String[] args) { int[] arr = {1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,63,65,67,69,71,73,75,77,79,81,83,85,87,89,91,93,95,97,9
java跨平台的原理,jvm不可以跨平台的原因 因为java程序编译之后的代码不是能被硬件系统直接运行的代码,而是一种中间码-------字节码,然后不同的硬件平台上安装不同的java虚拟机(java)由jvm把字节翻译成所对应的硬件平台能够执行的代码。jvm:jvm在每个系统都不一样,所以不能跨平台。...
Java的几个版本 一、 Java SE(Java Platform,Standard Edition) Java SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类,并为 Java Platform,Enterprise Edition(Java EE)提供基础。二、Java EE(Java Platform,Enterprise Edition) 这个版本以前称为 J2EE。企业版本帮助开发和部署可移植
java语言特点 简单性、 面向对象、 分布式、 健壮性、 安全性、 体系结构中立、 可移植性 、解释型 、高性能 、 多线程、 开源 、跨平台 1.简单性:Java语言是C++语言的一个“纯净”版本。没有头文件、指针运算、结构、联合、操作符重载、虚基类等。 2.面向对象面向对象即面向数据。Java的面向对象特性与C++旗鼓相当,Java与C++的主要不同点在于多继承,在Java中,取而代之的是更简单的接口概念。 3.分布式Java有一个丰富的例程库,用于处理像HTTP和FTP之类的TCP/IP协议。Java
java跨平台原理 JAVA源代码->JAVA字节码->JVM解释执行我们写的JAVA源代码会被编译为字节码,然后被JVM虚拟机解释执行,我们可以看到JVM虚拟机在跨平台的过程中发挥了重要的作用,就是由它解释字节码并执行的,对应于 每一个平台都有一个JVM虚拟机,而字节码只有一份,windows的JVM虚拟机可以将字节码解释为能在windows平台上执行的指令并执行,Linux的JVM虚拟机可以将字节码解 释为能在Linux平台上执行的指令并执行,他们执行的字节码都是同一份。这样就实现了跨平台。...
jvm jre jdk他们有什么作用,之间的关系是什么。 JVM :英文名称(Java Virtual Machine),就是我们耳熟能详的 Java 虚拟机。它只认识 xxx.class 这种类型的文件,它能够将 class 文件中的字节码指令进行识别并调用操作系统向上的 API 完成动作。所以说,jvm 是 Java 能够跨平台的核心,具体的下文会详细说明。JRE :英文名称(Java Runtime Environment),我们叫它:Java 运行时环境。它主要包含两个部分,jvm 的标准实现和 Java 的一些基本类库。它相对于 jvm 来说,多出来
each的用法 each的用法//这是原生js对象 var arr =[1,5,6,"小","牙",true] // 将原生对象转换为jquery对象 :把原生对象用括号括起来 加上$即可 var $arr = $(arr) //每一个便利出来的元素都会执行一次callback函数 //i就是数组的角标 //a 就已经是遍历出来的元素 $arr.each(function(i,a){ console.info(a) })var arr = [ "one"
jquery Jquery 层级选择器 有嵌套关系用层级选择器 ancestor descendant :在给定的祖先元素下匹配所有的后代元素 parent > child :在给定的父元素下匹配所有的子元素 prev + next :匹配所有紧接在 prev 元素后的 next 元素 prev ~ siblings :匹配 prev 元素之后的所有 siblings 元素 基础选择器 没有嵌...
js 基础 js基础j s使用: 在 body head 中使用通过标签 document.writedocument: 文档write: 写入alert(b)弹窗输出内容alert(‘hello world’)confirm 确认弹窗 有确认和取消按钮 点击确认返回true点击取消按钮 会返回falsejs 注释 让大家更好地理解//单行注释{不影响代码,又可以注明代码的用途}/**这里是多行注释...