Java基础
不爱学习的小笨猪
这个作者很懒,什么都没留下…
展开
-
数组(1)
1、什么是数组?数组是一串连续的内存空间,这些内存空间所存储的数据的数据类型是一样的2、声明数组的方法(一维数组)type [] arryname ;例如 int [] arr;声明数组并没有给数组分配内存空间,只是申请声明数组时并不知道数组的大小,不能指定数组长度3、创建数组arryname = new type [num];例如arr = new int[5]; 其中只有当数组被声明过了才能创...原创 2018-04-10 15:17:13 · 135 阅读 · 0 评论 -
异常的基本理论
1、异常计算机中的异常是在运状态中出现不正常的现象2、为什么需要异常处理因为异常是在正常情况之外的,并不是做某件事情的主体,将异常作为一个类,将异常处理和正常流程的代码进行分流。增加可读性3、异常类每种异常分别定义一个异常类,用于表述不正常情况的类4、异常分类1)异常(1)编译异常 在写好一条或者一段语句后就能检测出来(编译器的强大功能 记事本就不行了)(2)运行时检查 比如下标越界 空指针等 只...原创 2018-05-03 20:59:12 · 178 阅读 · 1 评论 -
Java集合框架
1、vectorvector是最原始的数组 本质是动态数组 Vector<Integer > v1 = new Vector<>() ;不带参数的构造函数 容量和增量默认为10 容量指数组的最大存储量 增量指当元素个数超过当前 Vector的容量时, Vector会自动再增加10的内存空间 达到动态扩容的目的 但是如果只是在当前容量等于元素个数时再增加一个元素时就会浪...原创 2018-04-27 14:04:46 · 82 阅读 · 0 评论 -
IO流操作
1、基本概念应用程序与设备(键盘 屏幕 文件)之间进行数据的传输就叫做流操作文件输出流 文件输出流 文件的输出流以及输出流是指应用程序与应有设备之间的通信 比如应用程序向硬盘发送一条指令 创建一个文件并将这个文件写入1 2 3 4 5这些数字 这时相对于应用程序来说就是向文件输出一些信息 流有两种:字节流 字符流字节流就是将数据看成无意义的字节 给机器操作的(底层)(二进制数据)字符流:就是将数据...原创 2018-04-28 14:15:04 · 149 阅读 · 0 评论 -
函数的引用传递和值传递
一般值传递是用在基本数据类型上 因为基本数据类型的数据是最基本的数据类型 直接在栈内存进行操作即可而引用类型基本都出现在复合数据类型(比如string)以及自定义类型(自己定义的学生类) 都是要在栈内存中存储引用类型的地址 所以需要(new)这个关键字来创建这个一个应用对象 在函数调用时值传递时只是将值往另一个地方操作 如果没有返回值就没有任何变化 而引用传递则是将这个对象的地址(内存单元的地址)...原创 2018-04-28 15:06:36 · 230 阅读 · 0 评论 -
Java贪吃蛇小游戏开发
1、主要的对象网格(边界)、食物(游戏之一)、蛇(主要对象)、游戏(由网格、食物、蛇组成而有规则的游戏控制)因为食物是由单位网格(一个网格)以及蛇是由几个网格(蛇身)组成的 所以将一个网格(一个网格的表示不最基本的数据类型表示 所以封装起来能方便使用)封装起来即用节点表示 2、对象的属性和方法 食物 属性 行号 列号 颜色 方法 初始化 随机 在网格中 不能与蛇身重叠 绘制...原创 2018-04-28 16:15:35 · 962 阅读 · 0 评论 -
实现读取txt文本 统计文本单词出现次数
//介绍://InputStream 是所有字节输入流的超类,一般使用它的子类:FileInputStream等,它能输出字节流;其他地方往应用程序输入数据,也就是从其他位置读取数据在应用程序中;//InputStreamReader是字节流与字符流之间的桥梁,能将字节流输出为字符流,并且能为字节流指定字符集,可输出一个个的字符。//FileInputStream 继承于InputStream 用...原创 2018-06-06 21:44:42 · 15463 阅读 · 3 评论 -
idea以maven的形式导入项目
1、打开idea 选择import project2、找到要导入的项目在电脑磁盘的位置 选择ok3、选择maven模型4、下一步的操作如下图 5、之后都是next就好 导入完成6、之后敲打命令生成相应的jar包或者war包mvn clean:清除编译的文件,删除target目录mvn compile:编译主目录文件mvn package:打包--java工程 打的是jar包--web项目 打...原创 2018-06-07 22:44:17 · 6004 阅读 · 4 评论 -
我对线程的理解
1、进程、线程进程是指是要实现某块功能(下载歌曲、听歌)时,将需要的空间以及资源分配好。而这个功能可以分为几个任务,每一个执行任务就是最小的工作单元也就是线程。不需要实现某功能的时候也就不存在任务之说,所以说没有进程就没有线程之说。每一个进程最起码有一个线程(主线程)。而能实现多个块功能的应用即是程序。在计算机中进程就是实现某个功能时,实现这个功能从cpu中分配出来内存空间以及资源的调配的过程。线...原创 2018-05-03 20:28:10 · 205 阅读 · 0 评论 -
面向对象 三
1、类2、对象3、默认构造函数 参数为空 函数主体也为空 返回值也为空 构造函数是在初始化对象的属性 防止设置一大堆的属性值4、 自定义构造函数 自定义函数主体 无论是默认构造函数还是自定义构造函数 函数的函数名都是和类名是一样的 两个函数的函数名一样就是在重写函数 而不用去看返回值类型是否相同以及参数类型和参数的个数 重写可以发生在同一个类中 也可以发生在父类与子类之中,在父类与子类是子类继承父...原创 2018-04-20 16:47:08 · 99 阅读 · 0 评论 -
面向对象(二)
1、什么是类?一类具有相似静态属性和动态行为的集合的描述 比如 人类2、万事万物皆对象 什么是对象?一类具有相似静态属性和动态行为的集合中的一个 具有具体的属性值和具体的操作行为 比如:胖胖的我 3、什么是抽象?将一类事物的共性和本质(相似的属性和行为)描述出来的过程 其结果就是一系列数据 比如:人都有姓名,身等属性,吃饭睡觉等方法4、什么是封装?封装就是将一些属性和行为隐藏起来,设置一个边界,使...原创 2018-04-20 00:13:23 · 145 阅读 · 0 评论 -
冒泡排序
public static void main(String[] args) { /* 冒泡排序的关键是相邻的两个数进行比较,大的在前面则交换位置 因为第一次是最大的在最后面,第二次的结果是第二大的在倒数第二位, 所以第几轮操作下来,只需要前N-i前面的相邻的两个数进行比较 */ int [] arr1 ={...原创 2018-04-10 18:09:37 · 98 阅读 · 0 评论 -
数组顺序查找
/** * 在一维数组里查找一个数是否存在 如果找到返回下标 否则返回-1 * @param num 待查找的数 * @param arr1 被遍历的数组 * @return -1->没有找到 大于-1指的是查找的这个数在数组中的下标 */ int [] arr1 ={2,4,6,8,10}; int times ...原创 2018-04-10 19:50:40 · 2472 阅读 · 0 评论 -
二分查找即折半查找
二分查找的条件是已经排序好的一系列元素二分查找的思想是从已经排序好的数组中,在要找的范围(起始点和终点)内确定中间的数,让待比较的数和中间的数比较,如果相等直接输出下标 如果待查找的数比此刻中间的数还大,说明要找的数在后半截,则将起始点改为刚才中间下标的后一个,如果待查找的数比此刻中间的数还小,说明要找的数在前半截则将终点改为刚才的中间下标的前一个,如此再计算中间的下标,再次比较此次中间...原创 2018-04-10 20:09:31 · 125 阅读 · 0 评论 -
分糖果问题 方法一
10个小孩围成一圈分糖果,老师分给第一个孩子10块,第二个小孩2块,后面依次分的糖果数量为8、22、16、4、10、6、14、20。然后所有的小孩同时将手中的糖果分一半给右边的小孩,糖果为奇数的可向老师要一块。问经过几次后,大家手中的糖果的块数将一样多,每个人有多少糖果。这个问题的关键在于“所有的小孩同时将手中的糖果分一半给右边的小孩”之后每个人的糖果数是如何变化的? //每个小孩糖果初始值...原创 2018-04-11 10:42:07 · 5763 阅读 · 0 评论 -
周期性变化控制
周期性变化控制比如:0 1 2 3 4 5 6 7 8 9/ 0 1 2 3 4 5 6 7 8 9/0 1 2 3 4 5 6 7 8 9方法是: for(int i =0;i<=30;i++) { if(i%10==0) System.out.println(); System.out.pri...原创 2018-04-11 14:02:45 · 253 阅读 · 0 评论 -
面向对象(一)
1、继承子类继承父类可以说子类拥有父类的所有属性和方法,但是如果子类想和父类有相同的方法却不一样的值时用重写写法:public class Dog extends Anmial { public Dog(String name) { super(name); }继承父类的构造函数2、重写重写是在继承的基础上,子类和父类有同样的方法,但是具体的操作或者说是...原创 2018-04-17 17:52:11 · 98 阅读 · 0 评论 -
分糖果问题 方法二
10个小孩围成一圈分糖果,老师分给第一个孩子10块,第二个小孩2块,后面依次分的糖果数量为8、22、16、4、10、6、14、20。然后所有的小孩同时将手中的糖果分一半给右边的小孩,糖果为奇数的可向老师要一块。问经过几次后,大家手中的糖果的块数将一样多,每个人有多少糖果。解答思路:这个问题可以先将每个人手中的一半糖果拿出来存储在一个数组中,将手中剩下的一半糖果在存储在一个数组中,可以看到这个是交错...原创 2018-04-12 09:23:52 · 7096 阅读 · 0 评论 -
进制转换器
项目要求:打印菜单项,让用户输入对应的字母(不区分大小写),则选择了相应的进制转换接下来接受用户的输入,验证用户输入的合法性,合法则进行进制转换,输出结果分析:进制转换分为X->十进制 十进制->X进制X->十进制 :按权展开,权用在原进制基的上标,即几个原进制基相乘再乘以系数十进制->X进制:除基取余,除以要转换的目标进制的基,倒序取余,直到商为02、8、16进制之间的...原创 2018-04-12 18:03:51 · 914 阅读 · 1 评论 -
格林威治时间转换成字符串
字符串转相应格式的日期再转成特定格式字符串 public Text evaluate(Text date1 ) { //源数据格式 "31/Aug/2015:00:04:37 +0800" // 目标格式 20150831000437 /* 思路: 1、将字符串转成一样格式的日期 也就是将字符串解析成相...原创 2018-06-26 20:55:14 · 2051 阅读 · 0 评论