
Java自学基础知识
Sukla
It's my life !
展开
-
java学习第51天,shootgame
1、效果2、游戏类package com.sukla.shoot;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.awt.image.Buf...原创 2018-04-27 08:22:40 · 809 阅读 · 0 评论 -
java学习第41天,栈 MAP
1,pop(); 出栈操作2,push();入栈操作3,peek();获取栈顶元素 但是不出栈4,.size(); 获取栈中元素个数 配合 pop(); 遍历栈 是一次性的遍历 遍历完成之后 栈中就没有元素5,MAP 是一个类似 两列 多行的数据结构 每行由一个 key 和一个 value 对构成 6,put(K k,V v);加入一对 如果 Map 中已经有了 同样的 k 那原创 2017-10-31 20:31:06 · 224 阅读 · 0 评论 -
java学习第34天,集合 迭代器
1,set 集合不完全是无序的 也有有序的2,boolean addAll() 将一个集合的元素 完全添加到另一个元素中 如果集合的元素个数发生变化 就返回 true 没变化 就返回 false3,contains 查看集合中是否包含某个元素 是根据equals 比较的结果来判断的 只要有相同的属性和方法 就算是equals比较相等4,containsAll 查看集合中是否包某一个集合原创 2017-10-23 08:00:27 · 246 阅读 · 0 评论 -
java学习第40天,队列 栈
1,队列 queue 是一个先进先出的管道一样的数据结构 2,offer(T t); 队列可以加入加入一个元素3,T poll(); 队列的列头的元素出列 执行之后元素就不再存在队列里面了4,T peek(); 获取队列的列头的元素 执行之后 元素还在队列里面5,size(); 队列的元素个数 可以用来配合 poll(); 遍历队列 是一次性的 遍历完之后 队列中就没有元素了原创 2017-10-30 19:16:33 · 241 阅读 · 0 评论 -
java学习第28天,包装类,基本时间类
1,java是面向对象的,但是8个基本类型并不是对象,需要包装成对象,使基本类型参与到面向对象开发中去;2,int 的包装类是 Integer;3,char 的包装类是 Character;4,long 的包装类是 Long;5,double 的包装类是 Double;6,short 的包装类 是Short;7,boolean 的包装类是 Boolean;8,float原创 2017-10-13 09:36:09 · 247 阅读 · 0 评论 -
java学习第39天,集合的排序
1,如果一个类型没有实现自己的比较方法,还想执行一次比较,可以使用一个额外的比较器2,在比较器里面可以使用匿名类来实现比较接口,这个比较器只使用一次,是使用匿名内部类的最佳时机原创 2017-10-29 16:44:42 · 244 阅读 · 0 评论 -
java学习第33天,String Date Calendar 集合
1,字符串格式可以转换成日期格式Scanner scanner=new Scanner(System.in);String str=scanner.nextLine();SimplateDateFormat sdf=new SimplateDateFormet("yyyy-MM-dd");Date date=sdf.format(str);2,日期格式 Date 可以转换成 C原创 2017-10-20 21:38:16 · 235 阅读 · 0 评论 -
学习java第27天,str.equals();
1,java中的原有的equals();里边比较的是使用 == 来比较, == 是比较是不是同一个东西 ,equals比较的是两个东西的特征是否一致,不用比较所有的特征,可以对原生的equals重写来实现具体的类的equals特征的比较;原创 2017-10-11 09:36:36 · 542 阅读 · 0 评论 -
java学习第38天,集合排序
1,可以使用Collections.sort(list);对list 集合进行排序,但是要求集合里面元素的类实现了 comparer 接口 否则会报错2,常见的包装类型都已经实现了比较方法3,自己创建的类要自己实现比较方法 一般可以在实现比较接口的时候 使用这个类本身作为泛型 然后自定义比较方法4,比较方法的返回值是 int 如果0 说明当前元素比给定的元素大5,在一个类型的比较方原创 2017-10-27 12:46:51 · 205 阅读 · 0 评论 -
java学习第32天,Calendar计算时间
1,Calendar calendar=Calendar.getInstence();常量 YEAR 获取当前的年份 int year=calendar.get(Calendar.YEAR)常量 MONTH 获取当前的月份 int year=calendar.get(Calendar.MONTH)常量 DATE 获取当前的日 int day=calendar.get(Calendar.原创 2017-10-19 08:49:26 · 393 阅读 · 0 评论 -
java学习第26天,学习java正则切割与替换,初识java对象object
1,在java里边,array=str.split("X");将字符串str按照"x"切割,返回一个数组array,如果是切割的时候开头就有"x"的话,返回的数组的第一个元素是一个空字符串"",如果切割的时候末尾有字符 "x" 的话,是不会返回最后面那个空字符串的;2,str=str.replaceAll(regex,str1); 将str里边满足regex 正则格式的字符串替换为str1;一原创 2017-10-09 12:59:06 · 175 阅读 · 0 评论 -
java学习第35天,新循环 泛型
1,Collection c=new ArrayList(); c.add("a");c.add("s"); for(Object o:c){ String str=(String)o; }:后面是被循环的数组或者集合 :前面是当此循环到的元素 因为集合中没有约定存放的是什么类型的数据 需要自行判断 所以当前元素返回的是 Object2,数组新循环 String[] array={原创 2017-10-24 08:01:11 · 265 阅读 · 0 评论 -
java学习第42天,hashMap
1,hashMap 在存数据的时候,会先获取key 通过Object 类 的 hashCode算法获取code 值 是一个整数 然后看这个整数对应的地址的 key 作equals比较是否返回 true 如果返回 true 的话 就替换这个位置的数据 如果返回 false 的话 就添加进去2,如果多个key value 对 计算之后的 hashCode 都一样 但是 做 equals 比较返原创 2017-11-01 15:14:49 · 195 阅读 · 0 评论 -
java学习第29天,getTime();setTime();SimpleDateFormat();
1,工具类中的时间Date类,有一个方法 getTime();返回一个 long 型的时间毫秒数;2,工具类中的时间Date类,有一个方法 setTime(long);接收一个long型毫秒数,编辑时间;3,SimpleDateFormat 类,将时间实例与字符串之间切换,SimpleDataFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm原创 2017-10-16 08:01:09 · 1114 阅读 · 0 评论 -
java学习第49天,多级目录下创建文件 listFiles方法
1,创建一个包含在多级目录下的文件 要先判断该文件所在的上级目录是否存在 不存在就先创建上级目录 然后创建文件2,getParentFile(); 获取上级目录3,listFiles 支持过滤器 返回满足过滤器的子集 过滤器要实现 accepr()方法 这个方法约定过滤器的规则4,RandomAccessFile 总是在磁盘的当前指针位置读写字节原创 2017-11-16 21:47:33 · 379 阅读 · 0 评论 -
java学习第45天,hashmap 遍历key key-value value
1,Set keyset=map.keyset() 返回一个 key 形成的 不可重复的 set 集合 遍历集合就可以遍历 map 的 key2,Collection values=map.values() 返回可重复的 collection 集合 3,entrySet map 中可以堪看作一个表格 每一行就是一个 entry entry有getKey getValue方法 4,Set原创 2017-11-06 08:50:23 · 337 阅读 · 0 评论 -
java学习第48天,删除目录
1,只有当目录里面为空的时候 才可以删除2,dir.listFiles(); 可以查看目录的子项 不能查看子项的内容3,getName(); 可以查看子项的名称4,目录是没有长度的5, 统计字符串里面的每个字符出现次数 Map map=new HashMap();for(int i=0;ichar c=str.charAt(i);if(map.containsK原创 2017-11-14 23:05:38 · 196 阅读 · 0 评论 -
java学习第50天,文件读写
1,RandomAccessFile 用于读写文件2,RandomAccessFile ref =new RandomAccessFile("demo.dat","rw"); 给当前目录下的文件 demo.dat 赋予 读写 权限3,File file=new File("demo.dat"); RandomAccessFile raf2 =new RandomAccessFile(fil原创 2017-11-17 21:58:04 · 230 阅读 · 0 评论 -
java学习第47天,创建 删除 文件 目录 多级目录
1,创建的目录在项目的根目录 不在 src 或者是其它目录2,不能访问文件的内容3,exists();判断文件是否存在硬盘上 4,file.createFile(); 创建文件5,dir.mkdir(); 创建目录 要求每一级目录的父目录要存在6,dir.mkdirs(); 创建多级目录 会创建目录的父级目录7,dir.isDirectory(); 是否为目录8,fil原创 2017-11-13 20:29:01 · 769 阅读 · 0 评论 -
java学习第37天,集合转换数组
1,list 集合可以转换成数组,数组可以转换成LIST 集合2,数组不能转换成 SET 集合 因为 SET 集合不能存储重复的元素3,LIST 集合可以使用 collections.sort();进行自然排序 collections 是一个工具类4,String[] arr =list.toArray(new String[]);可以接受一个数组 如果这个数组的空间能放得下转换出来的原创 2017-10-26 12:34:36 · 199 阅读 · 0 评论 -
java学习第46天,文件操作
1,中央处理器 cup 处理的是内存中的数据2,内存 中的数据是从 硬盘 获取的 当中央处理器处理完内存上的数据 硬盘就重新往内存中放数据3,在使用文件层级符号的时候 不同的操作系统的层级符号都不完全一致 应该使用 层级分隔符常量原创 2017-11-12 18:12:21 · 261 阅读 · 0 评论 -
java学习第30天,SimpleDateFormat
1,SimpleDateFormat 除了能把Date实例转换成指定格式的字符串,还可以把指定格式的字符串转换成Date类型;2,String format ="yyyy-MM-dd"; SimpleDateFormat sdf =new SimpleDateFormat(formatstr);String datestr="2017-10-17";Date date=sdf.pa原创 2017-10-17 07:56:27 · 205 阅读 · 0 评论 -
java学习第36天,list集合
1,集合使用了泛型 但是迭代器仍然返回的是Object 应该给迭代器设置和集合一致的泛型 这样的话 迭代器每次返回的就还是和集合的泛型所设置的类型一致的数据 不用再重新判断到底要转换成什么类型的数据了2,迭代器可以使用泛型 但是泛型所设置的类型必须和集合所用的泛型的类型一致3,集合有一个叫做 list 的子类 是一个接口 用来存储有序的集合4,list 集合可以造型为 ArrayLis原创 2017-10-25 12:13:12 · 229 阅读 · 0 评论 -
java学习第43天,重写hashcode
1,hashCode 返回的整数相同的时候 要求 key 做 equals 比较必须返回 true2,hashCode 多次接受同一个参数 计算之后返回的整数不能有变化 要保持稳定性原创 2017-11-02 10:20:59 · 238 阅读 · 0 评论 -
java学习第25天,学习stringBuilder,stringBuffer,基础的正则,matches()
1,string是不可变的对象,当创建两个长度非常长但是就末尾一个字符不一样的字符串时候,会创建两个很长的空间,比较耗费空间,stringBuilder可以解决这个问题,stringBuilder会在第一个字符串上追加多出来的哪一个字符,而不是开辟一个很长的空间;2,stringBuffer的作用和stringBuilder是基本一样的,只是stringBuffer是线程安全的,stringB原创 2017-10-08 10:19:16 · 231 阅读 · 0 评论 -
java学习第24天(续),学习几个API,indexOf(),charAt(),toUpperCase(),toLowerCase(),subString(),trim()
1,indexOf(),返回所选的字符串在目标字符串中的位置,int i=str.indexOf("str1");返回所选的字符串从所选位置开始查找出现的位置,int i=str.indexOf("str1",index);一般用来验证字符串包不包含某些字符,比如邮箱中的@2,charAt(),返回字符串指定位置的字符,char c=str.charAt(index);一般用来验证回文3,原创 2017-10-07 12:10:21 · 781 阅读 · 0 评论 -
java学习第24天,学习String字面量
1,string是不可变对象,是final修饰的,创建之后不能修改;2,创建一个string类型的数据可使用String str="str1";也可以用String str=new String("str1");3,在创建的时候就能从字面上看到数据结果的变量叫做字面量;4,在创建两个结果一样的字面量的时候,如果不用new来创建的话,两个变量指向的是同一个对象;5,但是如果对其中一个原创 2017-10-07 11:54:47 · 351 阅读 · 0 评论 -
学习java第10天
1,编程的时候有好几种模式,面向过程编程,面向对象编程,面向接口编程等;2,面向过程就是按照流程走,用到什么拿什么;3,面向对象编程就是把需要走流程的事物归类,把用到的数据和方法放到一起,执行的时候就能准确的将事物,数据,方法对应起来;4,面向接口之于面向对象就类似面向过程之于面向的对象;原创 2017-08-22 10:24:27 · 283 阅读 · 0 评论 -
学习java第13天
1,JVM有一个垃圾回收机制,不同版本的JVM的机制还不一样;2,垃圾回收机制是不定时的,所以内存是会发生泄漏的;3,成员变量是在堆里面的,局部变量是在栈里面的,类和方法是放在方法体里面的;4,成员变量的生命周期是从一个对象被创建的时候开始的,创建完成之后就放在了堆里面,当一个对象没有被任何栈里面的变量引用的时候,就结束它的生命周期,这时候如果我们不手动让系统将它释放掉的话,虚拟机JV原创 2017-08-25 08:57:38 · 310 阅读 · 0 评论 -
java学习第五天
1,分支结构就是根据不同的条件执行不同的代码;2,常用的分支结构有 if(条件){满足条件时的代码},if(条件) {满足条件时的代码}else{不满足条件时的代码},if(条件1){满足条件1时的代码} else if(条件2){满足条件2时的代码} else{条件1条件2都不满足时的代码};3,switch(int参数){case 待比较参数:待比较参数与参数相等时开始执行的代码;de原创 2017-08-14 08:27:58 · 238 阅读 · 0 评论 -
学习Java第四天
1,常用的几种运算方式,加+,减-,乘*,除/,模运算%,模运算就是对%后面的数取余数;2,还有自增++,自减--,当不参与运算的时候,a++与++a是一个意思,当参与运算的时候,a++是a参与运算,同时a=a+1,而++a参与运算时,是先算a=a+1,然后a参与运算;3,常用的逻辑运算,与运算&&,或运算||,非运算!4,与运算&&和||运算有短路逻辑,就是说满足条件之后就不往后执行原创 2017-08-13 10:21:24 · 265 阅读 · 0 评论 -
学习Java第三天
1,常用的数据类型有 int整形 long长整型 float单精度小数 double双精度小数 boolean布尔值 2,还有char字符型 ,char字符的直接量就是单引号中间放一个字符,只能是一个,不能放多个3,char 字符类型在初始化的时候,有三种方式,分别是直接量 'A' ,0到65535之间的一个数字,一个unicode编码 /u0000,unicode是一个16进制的数4原创 2017-08-12 11:14:08 · 254 阅读 · 0 评论 -
学习Java的第一天
1,JVM是虚拟机,JAVA程序都是运行在虚拟机上的,不同的系统要装对应的虚拟机,我装的windos的;2,JRE是JAVA的运行工具,JRE里面包含了JVM,如果要运行JAVA程序,就装上JVM;3,如果要开发JAVA程序,就要装上JDK,JDK包含了JRE,4,JDK要去官网下载,oracle.com;5,PATH与CLASSPATH的区别,CLASSPATH在查找时是先找的环原创 2017-07-12 08:02:24 · 255 阅读 · 0 评论 -
Java学习第二天
1,变量要声明,声明包括 变量名 变量类型;2,变量名 由‘_’,'$',字母开头,后面可以包含数字,不能用数字开头;3,变量被使用之前要初始化,就是得有一个值,初始化有两种方式,一种是在声明的时候初始化,一种是先声明,完了再初始化;4,初始化的时候要注意变量类型,比如 int 整形表示4个字节 大概就是正负21个亿之间 初始化的时候 不能超过这个区间;5,常用的变量类型有 int原创 2017-08-11 08:18:48 · 267 阅读 · 0 评论 -
java学习第九天
1,方法可以嵌套使用,就是在一个使用有个方法的时候,里面使用其它的方法,但是不可以嵌套声明方法,方法之间的关系是平级的;2,方法的功能要尽可能的单一,一个方法只做一件事;3,在设计一个程序的时候,要先设计数据结构,把数据结构理清楚之后,设计算法能够事半功倍;4,对于不需要返回值的方法,在声明的时候也可以使用return;来结束方法;原创 2017-08-18 08:02:33 · 329 阅读 · 0 评论 -
Java学习第六天
1,循环就是重复执行某部分代码,常用的有for循环和while循环;2,循环由三部分组成,循环条件,循环体,循环变量;3,for循环中,先判断循环变量满不满足条件,满足就执行循环体,循环体执行一次后,对变量做个变化,继续判断满不满足条件;for(变量;变量是否满足;循环体执行一次后对变量操作){循环体};4,while循环和for循环类似,变量 while(变量是否满足){循环体执行一原创 2017-08-15 09:08:05 · 257 阅读 · 0 评论 -
学习java第七天
1,程序是算法和数据结构构成的,数组是数据结构中的一种;2,数组中的数据类型必须一致;3,声明一个数组时要声明存放的数据类型,数组的名字,数组长度,长度就是这个数组要存放多少个该类型的数据;4,数组的初始化,可以在声明的时候初始化,int arr[]={1,2,3},也可以先声明再初始化,int [3] a;a=int arr[]{1,2,3};int arr[]和 int[]arr是原创 2017-08-16 09:56:26 · 263 阅读 · 0 评论 -
java学习第17天
1,当一个类的方法没有确定方法体实际应该怎么写的时候,就不要写方法体的花括号,前面用约定的东西修饰;这种方法称为抽象方法,因为缺少方法体,所以是不完整的;2,包含抽象方法的类,应为方法不完整,所以这个类也是不完整的,这个类也要用和抽象方法一样的修饰词来修饰,这种类叫做抽象类;3,抽象类是不完整的,不能实例化对象;4,抽象类可以被继承,继承抽象类的子类,在重写了抽象方法后就是一个完整的类原创 2017-09-02 09:14:07 · 258 阅读 · 0 评论 -
java学习第18天
1,接口就是一个规范,里面只有常量和抽象方法;2,接口可以看作是一个完全抽象的抽象类,因为包含了抽象方法,所以不可以实例化,可以想抽象类被子类继承然后重写抽象方法一样,接口可以被子类实现,并实现接口里面的全部方法;3,接口还可以被接口继承,子接口里面就包含了父接口里面的所有抽象方法和函数,当这个子接口被其子类实现的时候,子类必选实现子接口原有的抽象方法以及子接口从父接口哪里继承过来的所有抽原创 2017-09-04 08:15:05 · 209 阅读 · 0 评论 -
学习java第11天
1,构建一个类的时候,类的属性值会根据我们设定的数据类型对应一个该类型的默认值;2,引用类型的默认值是null,char类型的默认值是/u0000,int整形的默认值是0,boolean布尔值类型的默认值是false;3,内存中的数据是分堆和栈来存储的,引用类型的实际数据是放在了堆里面,堆的这个位置有一个地址,引用类型数据的变量名里面存的是数据在堆里面的地址值,引用类型是按地址传递的,给其原创 2017-08-23 14:50:04 · 341 阅读 · 0 评论