Java_基础(一)】的更多相关文章

Java_基础之数组排序(从小到大) 1.冒泡排序: 冒泡排序可以写成两层循环. 每次循环将最大的数值交换到数组的最后一个. 每排序完一次,后面就少比较一次.所以二层循环的判断条件写成:arry.length-1-i 2.选择排序: 选择排序可以写成两层循环. 每次排序会选择出数组中最小的数,将其交换到数组的第一位. 平均时间复杂度都是:O(n^2) 冒泡排序稳定,选择排序不稳定. Java里面有一个自动排序的函数:Arrays.sort(); 手写排序,让我们更好的理解算法,这两个排序为最简单…
1. JVM内存模型 Java虚拟机在程序执行过程会把jvm的内存分为若干个不同的数据区域来管理,这些区域有自己的用途,以及创建和销毁时间. JVM内存模型如下图所示 1.1 程序计数器 程序计数器(Program Counter Register),也有称作为PC寄存器.JVM中的程序计数器跟汇编语言中的程序计数器在功能上是相同的,即指示待执行指令的地址.当 CPU 需要执行指令时,需要从程序计数器中得到当前需要执行的指令所在存储单元的地址,然后根据得到的地址获取到指令,在得到指令之后,程序计…
数组反转也是Java的基础. 数组反转要求掌握的是: 1).创建一个数组,在内存中申请一块空间. 2).实例化数组. 3).对数组的了解.如:数组的长度,数组的下标,数组的表示方法. 4).数组的交换. 5).数组的输出. 数组反转让我们更好的了解数组的下标,和循环语句.要清楚数组的下标变化和数值的交换位置. 我用两种方法写出数组的反转,如下代码: /* * 数组反转 * * 方法1: * a[i]与a[a.length-1-i]数值交换位置 * 要在(a.length-1)/2这里停止,不然没…
之前只是了解的最基础的异常形式,没有过多的深入 今天因为一些原因了解了一下 下面来说说异常的几种形式 1.try-catch语句块 代码示例 class test{ public static void main(String[] args) { try { int a = 1/0; System.out.println(a); }catch(ArithmeticException e) { e.printStackTrace(); System.out.println(e); }finally…
1. 并发:位于同一个处理器上的多个已开启未完成的线程,在任意一时刻系统调度只能让一个线程获得CPU资源运行,虽然这种调度机制有多种形式(大多数是以时间片轮巡为主).但无论如何,都是通过不断切换需要运行的线程让其运行的方式就叫并发(concurrent).并发的线程之间有两种关系:同步.互斥. 2. 并行:在多CPU系统中,可以让两个以上的线程同时运行,这种可以同时让两个以上线程同时运行的方式叫做并行(parallel). 来个比喻:并发和并行的区别就是一个人同时吃三个馒头和三个人同时吃三个馒头…
1.类成员的访问权限控制 Java中类成员的访问权限分为四类:private,无(默认情况下),protected和public.其权限控制如下表所示: 修饰词 本类 同一个包的类 继承类 其他类 private √ × × × 无(默认) √ √ × × protected √ √ √ × public √ √ √ √ 其中,类成员在默认情况下没有任何修饰词,这样的成员具有“包访问权”,即位于同一个包中的类对其有访问权:而protected为“继承访问权”,即该类的子类对其具有访问权(同时,位…
1.类的加载.连接和初始化 当程序使用某个类时,如果该类还未被加载到内存中,则系统会通过加载.连接.初始化三个步骤来对类进行初始化.如果没有意外,jvm将会连续完成这三个步骤,有时也把这三个步骤统称为类的加载和初始化 1.1 类的加载 类加载器根据类的全名以二进制流的形式读取class文件到JVM内存的方法区中,然后转换为一个与目标类对应的java.lang.Class对象实例. 1.2 类的连接 链接阶段要做的是将加载到JVM中的二进制字节流的类数据信息合并到JVM的运行时状态中,经由验证.准…
package tek; Java算法——求出两个字符串的最长公共字符串 /** * @Title: 问题:有两个字符串str1和str2,求出两个字符串中最长公共字符串. * @author 匹夫(在YW的数据基础上再次延伸) * @date 2017年4月19日 下午8:08:37 */ public class Demo1 { /* //减0 个字符 内循环1次 k2.substring(0, 7);//外循环第1次_内循环第1次 //减一个字符 内循环2次 k2.substring(0,…
关于java父类继承: 首先抽象类有这样几个规则 1.定义为抽象类的类里可以没有抽象方法 2.抽象类里可以有普通的不带abstract关键字的方法 3.抽象类里可以有主main方法 4.抽象类也可以向上继承父类 5.子类继承父类之后一定要重写父类的抽象方法 6.带有abstract关键字的抽象方法不可有内容 最近在复习安卓的期末考试 所以写了一些安卓的代码,发现子类中有很多直接使用的本来中没有的方法,就在想是不是父类甚至父类的父类的方法可以直接使用 今天试了一下,果然可以,当然,也说明我基础有缺…
把没几多年,完全忘记了把自己学的东西记录下来了,现在也基本不知道怎么去记录会更好了,不过好歹妹是把住了~也要毕业了,继续回来写东东记录自己的学习...... 一个Java程序在运行时的内存分布主要如上图所示: CPU是程序逻辑运算部分——不太懂. register是程序在运行中分配给该程序的CPU寄存器的一部分,用于临时寄存指令或者数据,其调度算法参考操作系统中的寄存器调度. 下面主要讲解一下程序在内存中的结构. 一个Java程序是运行在JVM(Java虚拟机)中的,每个JVM又是一个独立的进程…