java基础
虫单
学习、分享、成长、坚持
展开
-
java内存管理机制
Java 内存管理总结1. java是如何管理内存的 Java的内存管理就是对象的分配和释放问题。(两部分) 分配 :内存的分配是由程序完成的,程序员需要通过关键字new 为每个对象申请内存空间 (基本类型除外),所有的对象都在堆 (Heap)中分配空间。释放 :对象的释放是由垃圾回收机制决定和执行的,这样做确实简化了程序员的工作。但同时,它也加重了JVM的工作。因为,GC为了能够转载 2017-03-07 23:44:40 · 225 阅读 · 0 评论 -
常用类-Sting类案例练习
1.String类判断功能/* * 模拟登录,给三次机会,并提示还有几次。如果登录成功,就可以玩猜数字小游戏了。 * * 分析: * A:定义用户名和密码。已存在的。 * B:键盘录入用户名和密码。 * C:比较用户名和密码。 * 如果都相同,则登录成功 * 如果有一个不同,则登录失败 * D:给三次机会原创 2017-02-26 15:58:45 · 409 阅读 · 0 评论 -
StringBuffer、Integer
1:StringBuffer(掌握) (1)用字符串做拼接,比较耗时并且也耗内存,而这种拼接操作又是比较常见的,为了解决这个问题,Java就提供了 一个字符串缓冲区类。StringBuffer供我们使用。 (2)StringBuffer的构造方法 A:StringBuffer() B:StringBuffer(int size)原创 2017-02-26 16:16:35 · 304 阅读 · 0 评论 -
数组高级以及Arrays、Character
1:数组高级以及Arrays(掌握) (1)排序 A:冒泡排序 相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处。同理,其他的元素就可以排好。/* * 数组排序之冒泡排序: * 相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处 */public class ArrayDemo { pu原创 2017-02-26 17:24:37 · 523 阅读 · 0 评论 -
常用类-正则表达式、Random、System
1:正则表达式(理解) (1)就是符合一定规则的字符串 (2)常见规则 A:字符 x 字符 x。举例:’a’表示字符a \ 反斜线字符。 \n 新行(换行)符 (‘\u000A’) \r 回车符 (‘\u000D’) B:字符类 [ab原创 2017-02-26 17:41:14 · 402 阅读 · 0 评论 -
常用类-BigInteger类、BigDecimal类、Date/DateFormat类、Calendar类
1:BigInteger(理解) (1)针对大整数的运算 (2)构造方法 A:BigInteger(String s)/* * BigInteger:可以让超过Integer范围内的数据进行运算 * * 构造方法: * BigInteger(String val) */public class BigIntegerDemo { publ原创 2017-02-26 17:59:42 · 359 阅读 · 0 评论 -
集合2
1:List的子类(掌握) (1)List的子类特点 ArrayList: 底层数据结构是数组,查询快,增删慢 线程不安全,效率高 Vector: 底层数据结构是数组,查询快,增删慢 线程安全,效率低 LinkedList:原创 2017-02-26 21:12:45 · 205 阅读 · 0 评论 -
集合3
1:泛型(掌握) (1)泛型概述 是一种把明确类型的工作推迟到创建对象或者调用方法的时候才去明确的特殊的类型。 (2)格式: <数据类型> 注意:该数据类型只能是引用类型。 (3)好处: A:把运行时期的问题提前到了编译期间 B:避免了强制类型转换 C:优化了程序原创 2017-02-26 21:28:45 · 229 阅读 · 0 评论 -
集合4
1:登录注册案例(理解) 2:Set集合(理解) (1)Set集合的特点 无序,唯一 (2)HashSet集合(掌握) A:底层数据结构是哈希表(是一个元素为链表的数组) B:哈希表底层依赖两个方法:hashCode()和equals() 执行顺序: 首先比较哈希值是否相同原创 2017-02-26 23:22:27 · 247 阅读 · 0 评论 -
集合5
1:Map(掌握) (1)将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。 (2)Map和Collection的区别? A:Map 存储的是键值对形式的元素,键唯一,值可以重复。夫妻对 B:Collection 存储的是单独出现的元素,子接口Set元素唯一,子接口List元素可重复。光棍 (3)Map接口功原创 2017-02-26 23:40:55 · 248 阅读 · 0 评论 -
集合案例练习
A:统计一个字符串中每个字符出现的次数/* * 需求 :"aababcabcdabcde",获取字符串中每一个字母出现的次数要求结果:a(5)b(4)c(3)d(2)e(1) * * 分析: * A:定义一个字符串(可以改进为键盘录入) * B:定义一个TreeMap集合 * 键:Character * 值:Integer *原创 2017-02-26 23:59:08 · 561 阅读 · 0 评论 -
集合
1:对象数组(掌握) (1)数组既可以存储基本数据类型,也可以存储引用类型。它存储引用类型的时候的数组就叫对象数组。 (2)案例: 用数组存储5个学生对象,并遍历数组。/* * 我有5个学生,请把这个5个学生的信息存储到数组中,并遍历数组,获取得到每一个学生信息。 * 学生:Student * 成员变量:name,age *原创 2017-02-26 20:48:37 · 211 阅读 · 0 评论 -
IO-异常、File、递归
1:异常(理解) (1)程序出现的不正常的情况。 (2)异常的体系 Throwable |–Error 严重问题,我们不处理。 |–Exception |–RuntimeException 运行期异常,我们需要修正代码 |–非Runtim原创 2017-02-27 13:55:48 · 317 阅读 · 0 评论 -
IO流-字节流
1:IO流(掌握) (1)IO用于在设备间进行数据传输的操作 (2)分类: A:流向 输入流 读取数据 输出流 写出数据 B:数据类型 字节流 字节输入流 字节输出流原创 2017-02-27 14:17:36 · 219 阅读 · 0 评论 -
IO流-字符流
1:字符流(掌握) (1)字节流操作中文数据不是特别的方便,所以就出现了转换流。 转换流的作用就是把字节流转换字符流来使用。 (2)转换流其实是一个字符流 字符流 = 字节流 + 编码表 (3)编码表 A:就是由字符和对应的数值组成的一张表 B:常见的编码表 ASCII原创 2017-02-27 14:39:25 · 221 阅读 · 0 评论 -
常用类-Scanner类、String类
1:Scanner的使用(了解) (1)在JDK5以后出现的用于键盘录入数据的类。 (2)构造方法: A:讲解了System.in这个东西。 它其实是标准的输入流,对应于键盘录入 B:构造方法 InputStream is = System.in; Scanner(InputSt原创 2017-02-26 15:45:49 · 357 阅读 · 0 评论 -
java常用类-Object类、Math类
1:Object类(掌握) (1)Object是类层次结构的根类,所有的类都直接或者间接的继承自Object类。 (2)Object类的构造方法有一个,并且是无参构造 这其实就是理解当时我们说过,子类构造方法默认访问父类的构造是无参构造 (3)要掌握的方法: A:toString() 返回对象的字符串表示,默原创 2017-02-26 15:34:23 · 408 阅读 · 0 评论 -
面对对象-权限修饰符、内部类
1:形式参数和返回值的问题(理解) (1)形式参数: 类名:需要该类的对象 抽象类名:需要该类的子类对象 接口名:需要该接口的实现类对象 (2)返回值类型: 类名:返回的是该类的对象 抽象类名:返回的是该类的子类对象 接口名:返回的是该接口的实现类的对象 (3)链原创 2017-02-25 22:25:51 · 213 阅读 · 0 评论 -
java基础语法上
1:关键字(掌握) (1)被Java语言赋予特定含义的单词 (2)特点: 全部小写。 (3)注意事项: A:goto和const作为保留字存在。 B:类似于Notepad++这样的高级记事本会对关键字有特殊颜色标记 2:标识符(掌握) (1)就是给类,接口,方法,变量等起名字的字符序列 (2)组原创 2017-02-25 14:24:32 · 207 阅读 · 0 评论 -
Java基础语法(3)
1:switch语句(掌握) (1)格式: switch(表达式) { case 值1: 语句体1; break; case 值2: 语句体2; break;原创 2017-02-25 15:26:51 · 767 阅读 · 0 评论 -
java基础语法(4)
1:方法(掌握) (1)方法:就是完成特定功能的代码块。 注意:在很多语言里面有函数的定义,而在Java中,函数被称为方法。 (2)格式: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2…) { 方法体语句; return 返回值; } 修饰符:目前原创 2017-02-25 15:15:18 · 276 阅读 · 0 评论 -
java基础语法(2)
1:运算符(掌握) (1)算术运算符 A:+,-,*,/,%,++,– B:+的用法 a:加法 b:正号 c:字符串连接符 C:/和%的区别 数据做除法操作的时候,/取得是商,%取得是余数 D:++和–的用法原创 2017-02-25 14:58:03 · 262 阅读 · 0 评论 -
java基础语法(5)
(7)数组的常见操作 A:遍历 方式1: public static void printArray(int[] arr) { for(int x=0; x System.out.println(arr[x]);原创 2017-02-25 15:58:28 · 226 阅读 · 0 评论 -
IO流其他类
1:数据操作流(操作基本类型数据的流)(理解) (1)可以操作基本类型的数据 (2)流对象名称 DataInputStream DataOutputStream/* * 可以读写基本数据类型的数据 * 数据输入流:DataInputStream * DataInputStream(InputStream in) * 数原创 2017-03-04 16:15:48 · 208 阅读 · 0 评论 -
多线程
1:多线程(理解) (1)多线程:一个应用程序有多条执行路径 进程:正在执行的应用程序 线程:进程的执行单元,执行路径 单线程:一个应用程序只有一条执行路径 多线程:一个应用程序有多条执行路径 多进程的意义? 提高CPU的使用率 多线程的意义? 提高应用程序的使用率(2)原创 2017-03-04 16:40:29 · 274 阅读 · 0 评论 -
多线程(线程通信)
1:多线程(理解) (1)JDK5以后的针对线程的锁定操作和释放操作 Lock锁/* * 虽然我们可以理解同步代码块和同步方法的锁对象问题,但是我们并没有直接看到在哪里加上了锁,在哪里释放了锁, * 为了更清晰的表达如何加锁和释放锁,JDK5以后提供了一个新的锁对象Lock。 * * Lock: * void lock(): 获取锁。 *原创 2017-03-04 17:10:00 · 319 阅读 · 0 评论 -
网络编程
1:网络编程(理解) (1)网络编程:用Java语言实现计算机间数据的信息传递和资源共享 (2)网络编程模型 (3)网络编程的三要素 A:IP地址 a:点分十进制 b:IP地址的组成 c:IP地址的分类 d:dos命令 e:原创 2017-03-04 21:04:01 · 188 阅读 · 0 评论 -
面对对象
面向对象(掌握) (1)面向对象 面向对象是基于面向过程的编程思想 (2)面向对象的思想特点 A:是一种更符合我们思考习惯的思想 B:把复杂的事情简单化 C:让我们从执行者变成了指挥者 举例: 买电脑 洗衣服 做饭 ...原创 2017-02-25 18:15:26 · 213 阅读 · 0 评论 -
面对对象(2)
1:成员变量和局部变量的区别(理解) (1)在类中的位置不同 成员变量:类中方法外 局部变量:方法定义中或者方法声明上 (2)在内存中的位置不同 成员变量:在堆中 局部变量:在栈中 (3)生命周期不同 成员变量:随着对象的创建而存在,随着对象的消失而消失 局部变量原创 2017-02-25 18:28:01 · 243 阅读 · 0 评论 -
面对对象-继承、代码块、API(Math类)
1:如何制作帮助文档(了解) (1)写一个类 (2)加入文档注释 (3)通过javadoc工具生成即可 javadoc -d 目录 -author -version ArrayTool.java2:通过JDK提供的API学习了Math类(掌握) (1)API(Application Programming Interface)原创 2017-02-25 18:39:13 · 272 阅读 · 0 评论 -
面对对象-抽象类、接口
1:抽象类(掌握) (1)把多个共性的东西提取到一个类中,这是继承的做法。 但是呢,这多个共性的东西,在有些时候,方法声明一样,但是方法体。 也就是说,方法声明一样,但是每个具体的对象在具体实现的时候内容不一样。 所以,我们在定义这些共性的方法的时候,就不能给出具体的方法体。 而一个没有具体的方法体的方法是抽象的方法。原创 2017-02-25 19:15:15 · 234 阅读 · 0 评论 -
面对对象-final关键字、多态
1:final关键字(掌握) (1)是最终的意思,可以修饰类,方法,变量。 (2)特点: A:它修饰的类,不能被继承。 B:它修饰的方法,不能被重写。 C:它修饰的变量,是一个常量。 (3)面试相关: A:局部变量 a:基本类型 值不能发生改变 b原创 2017-02-25 19:02:07 · 197 阅读 · 0 评论 -
java-网络编程(socket编程)
Java最初是作为网络编程语言出现的,其对网络提供了高度的支持,使得客户端和服务器的沟通变成了现实,而在网络编程中,使用最多的就是Socket。像大家熟悉的QQ、MSN都使用了Socket相关的技术。下面就让我们一起揭开Socket的神秘面纱。Socket编程一、网络基础知识(参考计算机网络) 关于计算机网络部分可以参考相关博客: 《TCP/I转载 2017-03-23 00:04:43 · 251 阅读 · 0 评论