
java基础
Melissa_hexiu
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
反射用法解析
首先是反射如何获取类,第三种是我们常用的方法。public class Demo1 { /** * 反射:动态获取类(字节码文件),并对其成员进行运行 * Person.class * 获取class的方式: * 1:使用Object提供的 Class<?> getClass()方法得到字节码文件 * 需要事先存在对象 * 2:每原创 2016-08-25 18:00:08 · 306 阅读 · 0 评论 -
数据流DataInputStream和内存流ByteArrayInputStream
数据输入流和数据输出流 提供了各种方法方便数据的输入和输出public static void main(String[] args) throws IOException { writeData(); readData(); } public static void readData()throws IOException {原创 2016-08-23 17:40:59 · 3787 阅读 · 0 评论 -
RandomAccessFile的应用
import java.io.*;class Demo7 { public static void main(String[] args) throws IOException { /* RandomAccessFile: 不属于IO体系,只能访问文件 内部既有字节输出流,也有字节输入流原创 2016-08-22 19:48:33 · 308 阅读 · 0 评论 -
ObjectInputStream流的应用
ObjectInputStream将写入的基本数据和对象进行反序列化。import java.io.*;class practice6{ public static void main(String[] args) throws IOException,ClassNotFoundException { writeObj(); readObj();原创 2016-08-22 17:48:43 · 558 阅读 · 0 评论 -
文件的分割
需要的时候看一下就行了public static void main(String[] args)throws IOException { //文件的分割 File file = new File("ok.jpg"); split(file); } //分割文件 public static void split(File原创 2016-08-22 16:54:46 · 311 阅读 · 0 评论 -
SequenceInputStream序列流的应用
需要注意的一点就是序列流接收的是枚举类型,我们需要把输入流先转成枚举的类型public static void main(String[] args) throws IOException { //序列流:SequenceInputStream /*FileInputStream fis1 = new FileInputStream("practice1.ja原创 2016-08-22 16:50:27 · 400 阅读 · 0 评论 -
PrintStream和PrintWriter打印流的应用
上一篇中关于Properties的文章中我们提到了PrintStream,我们利用打印流 将Properties中的内容通过list()方法写入到了文件中,那么我们现在具体了解一下打印流/* PrintStream:打印流,所以具备了字节输出流的基本功能,增加了打印功能 可以向哪些设备输出:1:File类型的文件原创 2016-08-22 15:44:56 · 923 阅读 · 0 评论 -
Properties集合的应用
关于Properties,是一个比较特殊的集合,集合里只能存字符串类型。/* Properties:是一个Map集合,存储的是属性,属性名和属性值必须都是字符串类型的,所以 这个集合类没有使用泛型 这是一个可以和流结合使用的集合类*/Properties的简单应用往集合里添加对象:setProperty(); 获取集合的键值:stringProper原创 2016-08-22 15:30:52 · 1807 阅读 · 0 评论 -
HashSet和TreeSet及修改其判断方法
Set:存储的对象是无序的,不可以重复的HashSet:底层使用的数据结果是哈希表,线程不安全的 保证对象唯一的方式: int hashCode() boolean equals(Object obj) 在添加对象时先用对象的哈希值和集合中对象的哈希值分别进行比较,如果和集合中所有对象的哈希值都不相同,那么直接把对象加入集合,如果出现哈希值相同的那么再调用 equals方法对象哈希值原创 2016-08-10 16:21:26 · 1255 阅读 · 0 评论 -
集合的几种特点以及迭代器
Collection: List:存储的对象是有序的(集合中对象的顺序和添加对象的顺序是一致的),可以重复的 ArrayList:底层使用的数据结构是数组,线程不安全的,查找速度快,增删速度慢 LinkedList:底层使用的数据结构是链表,线程不安全的,查找速度慢,增删速度快 Vector:底层使用的数据结构是数组,线程安全的,查找速度快,增删速度慢,被原创 2016-08-10 15:38:01 · 1324 阅读 · 0 评论 -
java中日期的格式化 时间类
import java.text.DateFormat;import java.util.Date;import java.text.SimpleDateFormat;class practice6{ public static void main(String[] args) { //日期的格式化 //得到一个日期时间格式化对象原创 2016-08-09 20:48:36 · 828 阅读 · 0 评论 -
java中类的权限
下面是模拟在一个类中,和在一个包中package test.big1601;public class Student{ private void fei() { System.out.println("飞"); } void pao() { System.out.println("跑"); } protect原创 2016-08-09 20:13:09 · 247 阅读 · 0 评论 -
File的一些操作
public static void main(String[] args) throws IOException { /* File file = new File("e:\\big0725\\day18\\Demo12.java"); File file2 = new File("e:\\big0725\\day18","Demo12.jav原创 2016-08-20 11:38:14 · 257 阅读 · 0 评论 -
转换流的问题编码问题,解码错误解决
当往文件中写入数据时,我们要规定存入数据的编码格式,我们存文文件的实际上是编码 当我们读取数据时也是解码的阶段,必须要用正确的编码格式解码public static void main(String[] args) throws IOException { //转换流的编码问题 writeData(); readData(); }原创 2016-08-23 19:28:21 · 1442 阅读 · 0 评论 -
InetAddress常用操作
InetAddress类的提供了一些对于IP地址的很多操作。 下面简单演示了几种用法,用到查API就好了。public static void main(String[] args) throws Exception { //返回本地主机的IP地址对象 //InetAddress address = InetAddress.getLocalHost();原创 2016-08-23 19:34:57 · 495 阅读 · 0 评论 -
利用Socket实现两个客户机通信
我们利用多线程的方式实现两个客户端实现通信,一个程序的有两个线程分别完成接收和发送数据报 这样两个程序一同运行时,也就实现了互相通信比较需要注意的一点就是端口要互相对应,分别完成发送和传输数据同一个程序的两个线程当然也是可以互相通信的。 下面看代码 客户端一:import java.io.*;import java.net.*;class practice1 { public s原创 2016-08-23 19:44:03 · 5224 阅读 · 0 评论 -
URL的常用方法
URL是将网址面向对象,方便了对网址信息的操作,连接,以及接收数据我们可以利用这种方法抓取到网页上的信息public static void main(String[] args) throws IOException { String path ="http://localhost:8080/myweb/mail.html?name=kk"; URL url =new原创 2016-08-25 16:49:49 · 745 阅读 · 0 评论 -
利用Tcp通信模式实现登陆验证(单线程)
Client客户端 接收键盘输入的信息传给服务器端,由服务器端验证后,客户端接收服务器端传回的信息。public class LoginClientTest { public static void main(String[] args) throws UnknownHostException, IOException { // TODO Auto-generated me原创 2016-08-25 16:11:45 · 1799 阅读 · 0 评论 -
泛型的上限和下限
泛型的上限使用class Demo9 { public static void main(String[] args) { //泛型上限的使用 TreeSet<Student> ts1 = new TreeSet<>(); ts1.add(new Student("lisi",21)); ts1.add(new S原创 2016-08-11 21:44:59 · 2143 阅读 · 0 评论 -
多线程基础问题
/*多线程:进程:正在进行中的程序 也就是在内存中开辟的一块空间线程:负责程序执行的一条执行路径 也称为一个执行单元 进程的执行实际上是线程在执行 一个进程至少会有一个线程 当一个进程中有多个线程时,就是多线程程序多线程可以实现不同功能的同时执行 多线程一定能提高效率吗?不一定能提高效率,但是能合理的使用 cpu资源 最主要的是能实现同原创 2016-08-12 16:55:17 · 247 阅读 · 0 评论 -
可变参数静态导入
//可变参数 :简化书写,必须写在参数列表的最后class Demo6 { public static void main(String[] args) { //int[] arr ={23,45,6,7,7,8,8}; int sum = add('a',5.6,3,4,5,6); System.out.println("sum原创 2016-08-12 16:33:13 · 192 阅读 · 0 评论 -
操作集合类Collections,自定义集合排序方式
//Collections:操作集合的工具类import java.util.*;class ComByLength implements Comparator<String>{ public int compare(String s1,String s2) { int num =s1.length()-s2.length(); return n原创 2016-08-12 16:22:57 · 991 阅读 · 0 评论 -
集合数组的转换
有一点特别主要注意的是,数组转换成集合后,该集合是不可以完成增加删除功能的//Arrays:import java.util.*;class Demo2 { public static void main(String[] args) { int[] arr = {34,56,67,78,89}; System.out.println(Arra原创 2016-08-12 16:20:43 · 246 阅读 · 0 评论 -
Tcp客户服务器模式通信
Client客户端,实现的任务是发送数据给服务器,然后还可以接收并输出服务器传回的数据。public class tcpClient { public static void main(String[] args) throws UnknownHostException, IOException { // TODO Auto-generated method stub原创 2016-08-24 17:44:18 · 508 阅读 · 0 评论 -
Map的解析HashMap和TreeMap
/*Map:是一个单独的接口,不属于Collection,属于集合,一对一对的存,称为键值对 HashMap:底层使用的数据结构是哈希表,线程不安全的 TreeMap:底层使用的数据结构是二叉树,线程不安全的添加: V put(K key, V value) void putAll(Map<? extends K,? extends V> m)删除: V remove(Obj原创 2016-08-11 21:54:56 · 376 阅读 · 0 评论 -
泛型基础用法解析
泛型:通过<数据类型>接收一种引用数据类型,在编译程序时会使用该类型检查集合中存储的对象是否是该 类型的,如果不是,编译不通过,从而把运行时期的问题转移到编译时期,提高了程序的安全性使用泛型不需要强制类型转换了泛型擦除:泛型是用在编译时期的,编译完之后的class文件中是不存在泛型的,也就是在编译好的文件里就不存在泛型了,数据类型都是确定的了。下面是泛型基本的用法//定义泛型类----在类上定义泛原创 2016-08-11 20:55:52 · 270 阅读 · 0 评论 -
通配符
下面用定义了泛型和通配符,用了两种方法进行迭代 并不清楚通配符比泛型有哪些好处//通配符: ?import java.util.*;class Demo7 { public static void main(String[] args) { ArrayList<String> list1 = new ArrayList<>(); list1.原创 2016-08-11 21:10:49 · 1080 阅读 · 0 评论 -
集合中存储时的对象重写比较方法
当往集合里存储对象时,往Set里import java.util.*;class Student implements Comparable{ String name ; int age ; Student(String name,int age){this.name = name;this.age = age;} public int compareTo(Obj原创 2016-08-11 20:33:44 · 524 阅读 · 0 评论 -
重写系统标准输入输出流
系统提供了System.in和System.out方法的输入输出流,分别可以接收来自键盘的数据 和往控制台输出数据,这两者都属于字节流,我们可以选择重写他们来自定义实现某些功能public static void main(String[] args) throws IOException { //System.setIn(new FileInputStream("temp原创 2016-08-20 11:11:36 · 460 阅读 · 0 评论 -
字节流应用
字节流的一些用法将字节流文件放入一个缓冲区直接读出public static void readFile3()throws IOException { FileInputStream fis = new FileInputStream("file.txt"); int num = fis.available();//返回文件的总大小,单位是字节,原创 2016-08-20 11:03:28 · 318 阅读 · 0 评论 -
单例设计模式中懒汉式并发访问的安全问题
直接看代码吧//单例设计模式中懒汉式并发访问的安全问题//饿汉式class Sinlge{ private static final Single s = new Single(); private Single(){} public static Single getInstance() { return s; }}class Sin原创 2016-08-16 19:56:10 · 534 阅读 · 0 评论 -
同步函数的锁是哪个锁
对于这个问题,同步函数的锁是当前对象的锁,也就是this。 先看代码 补充:在静态函数里的同步代码块锁也是this//静态同步函数进内存的时候不存在对象,但是存在其所属类的字节码文件对象,属于Class类型的对象,所以//静态同步函数的锁是其所属类的字节码文件对象class Ticket implements Runnable{ private static int num =原创 2016-08-16 19:55:06 · 1590 阅读 · 0 评论 -
多线程的共享与同步
当用多线程来实现四个窗口共同卖票问题时,要共享同一个变量,我们用继承Runnable接口的方式来创建线程。/*四个窗口同时卖票因为是同时,所以使用多线程创建4个线程,都是卖票因为都是卖票,说明4个线程的任务是一样的只需要定义一个类继承Thread对于此种方法的线程,线程和线程任务是绑定在一起的。而需要公用一个变量时,我们需要设置静态变量。为了解决四个线程共享票的问题,需要使用创建线程的第原创 2016-08-16 18:56:28 · 272 阅读 · 0 评论 -
多态问题解析
首先,什么是多态?多态:多种形态class 动物 { } class 猫 extends 动物 { }把猫看成猫: 猫 mao = new 猫();//常态把猫看成动物: 动物 mao = new 猫();//多态—把子类类型的对象看成了父类类型 //猫 mao = new 动物();--错误的 多态:父原创 2016-08-04 21:05:02 · 352 阅读 · 2 评论 -
接口问题
接口: interface 接口名 { public static final(成员变量); public abstract(成员方法) } 每个接口的成员变量前面都默认添加了public static final,每个成员方法前面都默认添加了public abstract.接口解决了java的单继承的问题因为接口中的方法都是抽象的,一个类在实现接口时,重写了接口中的抽原创 2016-08-04 20:51:50 · 274 阅读 · 0 评论 -
继承问题解析
首先继承有什么用?继承:1:实现了代码的重复利用 2:使类和类之间产生了关系–被继承的类是父类,继承的类是子类/***java中继承的特点**1:java是单继承的:一个类只能有一个父类 多继承:一个类有多个父类(java不支持)class Fu1{ public void show(){ show(){} }}class Fu2{ p原创 2016-08-03 16:37:19 · 302 阅读 · 0 评论 -
Java产生验证码除去特定值
生成4位网站验证码 1 不能重复 2 只能是数字和大小写字符, 但是不能包含1,0,o,O,l,L,Z,2,9,gimport java.lang.*;import java.util.*;class practice2 { public static void main(String[] args) { System.out.println(ge原创 2016-07-29 20:45:01 · 438 阅读 · 0 评论 -
栈堆几点特点
通过数组引出来的几点栈和堆的区别public static void main(String[] args) { //数组:特点是存储多个数据,是一种数据类型 new int[5]; int [] arr = new int[5]; /* java程序在运行时,JVM把内存分为5块,栈,堆,方法区,本地方法区原创 2016-07-29 14:48:10 · 340 阅读 · 0 评论 -
Java集合简单案例
集合的几个简单操作,增加删除等。public class CollectionTest { public static void main(String[] args) { // TODO Auto-generated method stub Collection c = new ArrayList(); c.add("haha");原创 2016-07-28 21:51:42 · 344 阅读 · 0 评论 -
正则表达式小例
简单的电话号码匹配的正则表达式测试import java.util.regex.Matcher;import java.util.regex.Pattern;public class zhengze { public static void main(String[] args) { // TODO Auto-generated method stub Stri原创 2016-07-28 19:47:32 · 183 阅读 · 0 评论