java基础
一只行走在闹市的猪
做一个有态度的人
展开
-
for循环、while循环和do........while循环的区别
做循环的时候,首先要把思路理清楚,回答四个问题:(1)初始化条件?(2)控制循环的条件?(3)反复做的事?(4)怎样进入下一循环?eg:对1到100求和(1)初始化条件:sum=0;num=1(2)控制循环的条件:num<=100(3)反复做的事:sum = sum + num(或sum += num)(4)怎样进入下一循环:num++这样就能轻松写出循环int sum = 0;int n...原创 2018-04-09 09:54:30 · 22410 阅读 · 3 评论 -
位运算符(&,|,>>……)及二进制下负数的表示
int型是4字节32位(Java中)位运算符 : &,|,~,^,<<,>>,>>>"&" 按位与,计算时将 十进制 转为 二进制 再进行计算,同位置为1,则结果为1,其余情况皆为03: 00000000 00000000 00000000 000000116: 00000000...原创 2018-07-24 13:02:43 · 1438 阅读 · 0 评论 -
String、StringBuilder和StringBuffer的区别(代码)
StringBuffer是线程安全的,线程安全会加同步锁,所以StringBuffer速度慢StringBuilder是线程不安全的,故速度快因此速度上:StringBuilder>StringBuffer>StringString速度慢的原因:String是字符串常量,StringBuilder和StringBuffer均是字符串变量 a. String s...原创 2018-07-12 17:51:30 · 606 阅读 · 0 评论 -
面向对象学习笔记(基础)
基本概念面向过程:结构化程序设计,我们在解决问题中,注重的是解决问题的每个步骤和过程。面向对象(oop):注重的是在问题中涉及的那些对象,以及对象之间有哪些关系。面向对象的优势:尽量把修改控制在一个小的范围。能轻松的应对修改。 核心思想 缺点 算法 面向过程 自顶而下,逐步分解,也就是把功能分解。 设计数据结构 编写基础代码,基于数据结构操作 一旦数据结构发生修改,必须就要修改操作...原创 2018-06-01 16:59:11 · 456 阅读 · 0 评论 -
IDEA下java程序怎样调试
为什么需要调试?因为程序出现问题的概率很高,甚至几乎是肯定的,那么排除错误的能力对于程序员而言至关重要。在实际项目中,调试的时间往往多于开发的时间。而且调试工具也是一个非常好的学习工具,能让我们更好的观察运行过程和中间结果,这对于初学者理解有部分抽象概念非常有好处。错误类型(1)语法错误指的是代码不符合语法规定。编译器会提示相应的错误(错在哪里,什么错误),根据错误提示修改的错误即可。出现了语法错...原创 2018-06-01 09:19:36 · 10676 阅读 · 0 评论 -
代码:Java实现大数据经典案例WordCount
要求:统计文本中出现的单词数,并按数量降序、单词升序输出原创 2018-06-14 20:25:18 · 3612 阅读 · 3 评论 -
工具类Collection,Set的实现类HashSet和TreeSet,List的实现类ArrayList和LinkedList
Collection: 单例集合的根接口 List:如果是实现了List接口的集合类,具备的特点:有序,重复。 ArrayList:底层是使用了Object数组实现的,特点:查询快,增删慢 LinkedList:底层是使用了链表数据结构实现的,特点:查询慢,增删快Vector:实现与AyyayList是一致的,相当于ArrayList的老版本 Set:如果是实现了Set...原创 2018-06-14 20:11:40 · 436 阅读 · 0 评论 -
泛型
泛型:泛型是JDK1.5出现的新特性。泛型的好处: 1:将运行时出现的问题提前至了编译时 2:避免了无谓强制类型转换 泛型是JDK1.5使用的新特性。泛型在集合中的常见应用:ArrayList<String> list = new ArrayList<String>(); true 推荐使用ArrayList&l...原创 2018-06-14 20:03:25 · 193 阅读 · 0 评论 -
变量到底是什么
变量:变量的本质是什么,或者说变量到底是什么?变量本质是内存单元,内存单元可以存储数据,也可以将存储的数据读出。Int x:告诉编译器,需要申请4个字节的内存空间,以后这个单元(4字节)就叫x。Int x = 4:申请 4个字节的内存空间,同时将4存入这个内存空间。内存单元有两个属性:值、地址1位8进制相当于3位2进制1位16进制相当于4位2进制x=x+1的含义:运算符:(1)算术运算符+、-、*...原创 2018-05-30 22:40:39 · 295 阅读 · 0 评论 -
集合框架:常用的集合类vector、Stack、List、set、Map,工具类Iterator、Collection
1.vectorVector(向量):动态数组为什么需要动态数组?很多时候,我们无法实现确定数组的元素个数,如果使用静态数组,小了不够用,大了造成空间浪费,这个时候我们就需要动态的数组,可以按照一定增量来增加容量。Vector的初始容量和增量都是10,可以通过他的构造方法来设置容量和增量。所谓的增量就是在容量不够时增加的量Size:Capacity:Add:Remove:当传入index时,删除指...原创 2018-06-06 20:05:51 · 260 阅读 · 0 评论 -
运算符(=还是==怎样区分)
运算符:(1)算术运算符+、-、*、/、%、++、--除法有两种:一般除法和整除,如果除数和被除数都为整型,则执行的是整除,否则执行一般除法。求余可用于判断奇偶、判别因子、控制数据的周期性变化 关系运算符>、<、>=、<=、==、!=逻辑运算符&&、||、!赋值运算符= 将数值存入内存单元赋值运算左边一定是变量而不能是其它任何东西(why)特别注意此处有坑!...原创 2018-06-11 14:36:43 · 321 阅读 · 0 评论 -
排序方法:选择排序&冒泡排序
选择排序:从前往后,将最前面的默认为最大或最小,让这个数与后面的一一做比较,然后交换位置,最终得到有序的数组。publicstatic void main(String[] args) { int[] arr = {2,4,8,10,20,15,7,9,17,12}; for(int i=0; i<arr.length; i++) { System.out.prin...原创 2018-05-28 11:16:19 · 154 阅读 · 0 评论 -
常见的查找方法:顺序查找和折半查找(二分查找)
(1)顺序查找也就是按顺序一位一位的查找public static void main(String[] args) { System.out.println("输入一个数"); Scanner scan = new Scanner(System.in); int num= scan.nextInt(); int[]arr = {2,4,6,8,10,12,14,16}; ...原创 2018-05-28 11:09:22 · 2646 阅读 · 0 评论 -
面向对象的三个特征:封装、继承、多态
1.封装 存在某个边界,边界之内的细节隐藏起来,只留下对外接口(如笔记本、手机、饮水机)为什么使用封装?(1)易用,简单(2)安全(3)易维护2.继承允许后代直接使用先辈的所有属性和行为。为什么使用继承?更好的实现了代码的重用。没有继承就没有发展。每一次都要从0开始。3.多态不同的对象接受到相同的消息,产生的响应不同接收到的消息是一样的,但做出的响应不同 例如每一种动物都有叫这个...原创 2018-05-28 10:58:50 · 133 阅读 · 0 评论 -
面向对象与面向过程的比较
面向过程:结构化程序设计,我们在解决问题中,注重的是解决问题的每个步骤和过程。面向对象(oop):注重的是在问题中涉及的那些对象,以及对象之间有哪些关系。面向对象的优势:尽量把修改控制在一个小的范围。能轻松的应对修改。 核心思想 缺点 算法 面向过程 自顶而下,逐步分解,也就是把功能分解。 设计数据结构 编写基础代码,基于数据结构操作 一旦数据结构发生修改,必须就要修改操作的代码 ...原创 2018-05-28 10:50:21 · 116 阅读 · 0 评论 -
怎样区分值传递与引用传递
今天看了很多资料来写一下总结 值传递 引用传递根本区别 会创建副本(copy) 不会创建副本结果 函数(方法)中无法改变原始对象 函数(方法)中可以改变原始对象这个表中可以看出在方法中,如果是值传递,原始的对象不会改变,而引用传递会将原始对象改变。这也就是说好比你有一个文档叫word,这个word你拷贝了一份叫word1,你需要要修改文件内容以满足你目前的需求时,如果你使用值传递,你修改的是wo...原创 2018-06-02 21:35:24 · 536 阅读 · 0 评论 -
Java用函数写分糖果
题目:10个小孩围成一圈分糖果,老师分给第一个孩子10块,第二个小孩2块,后面依次分的糖果数量为8、22、16、4、10、6、14、20。然后所有的小孩同时将手中的糖果分一半给右边的小孩,糖果为奇数的可向老师要一块。问经过几次后,大家手中的糖果的块数将一样多,每个人有多少糖果。解题思路:(1)先初始化一个数组,这个数组长度为10,元素分别为每个孩子的糖果数(2)判断每个孩子手中原创 2018-04-10 15:02:36 · 709 阅读 · 0 评论 -
ClassLoader、Class类
class:Class类可以获得一个对象所对应的类中的所有信息,如属性,方法,构造器,注解,其父类,实现的接口等。Class类的构造器是一个私有的,Class类的实例不能通过new来创建一个类对应一个Class类的实例Java语言系统自带有三个类加载器: Bootstrap ClassLoader(启动类加载器) 最顶层的加载类,主要加载核心类库,%JRE_HOME%\lib下的rt.jar、re...原创 2018-07-07 19:18:31 · 374 阅读 · 0 评论