JavaSE
馬冬梅啊
这个作者很懒,什么都没留下…
展开
-
eclipse/Myeclipse实用快捷键参考
参考至百度:Eclipse中的快捷键Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+D: 删除当前行Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复制当前行到上一行(复制增加)Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)Alt+↑ 当前行和上面一行交互位置(同上)Alt+← 前一个编辑的页面Alt+→ 下一...转载 2018-12-31 13:02:48 · 182 阅读 · 0 评论 -
javaSE (十九)List并发修改异常、List三个子类的比较
1、List指定地点替代和添加元素,并发修改异常的解决:遍历的同时在增加元素,会产生并发修改异常,这个时候采用List所特有的方法 ListIterator it = c.listIterator();,下面第一个方法是替代元素,第二个方法是添加元素method1(c); 用get()获取对象,然后用set改变对象, 再用iterator遍历,然后替代原来的元素method2(c)...原创 2018-12-03 22:14:45 · 391 阅读 · 0 评论 -
javaSE (二十六)map集合遍历(两种方法)、输入字符,计算字符出现次数(用map实现)、HashMap嵌套HashMap
1、map集合遍历:map集合没有iterator方法,所以不能直接迭代直接看下面的代码和第一行的注解(加了注释之后变黑看不清了,所以前面没加注释)1、map的第一种遍历:遍历map的所有值:method1() 获取所有的键的集合:Set<K> keySet() ,根据键获取值map.get(key) 然后for循环或迭代器遍历 2、map的第二种遍历:将键值对看...原创 2018-12-06 11:57:44 · 684 阅读 · 0 评论 -
javaSE (一)数据类型转换、++/--运算符
Date :2018/11/24补码反码计算机的数值计算都是用补码计算的,正数补码不变 负数为反码末位+10 0000111 +7 (原码)1 0000111 -7(原码)0 0000111 +7 (补码)1 1111001 -7 (补码)相加:10 0000000(计算机只存8位,所以直接去掉第一个1)java基本数据类型(4类8种)为什么javaqia...原创 2018-11-25 13:13:36 · 943 阅读 · 0 评论 -
javaSE (二十二)三种循环(普通、迭代器、增强for循环)去除集合ArrayList指定元素
三种循环(普通、迭代器、增强for循环)去除集合ArrayList指定元素:三种循环分别是普通for、迭代器iterator、增强for循环,来删除集合中自己创建的类对象其中增强for循环不能指定删除元素,迭代器和普通for我都是用的属性匹配找到元素后,普通for用的集合的remove()方法删除,迭代器用迭代器自带的remove()方法删除写的有点乱,想法全部在代码中,直接看代码吧.p...原创 2018-12-04 15:24:07 · 313 阅读 · 0 评论 -
javaSE (三十三)其他流(序列流、内存输出流、随机访问流、对象操作流、数据输入输出流、打印流、标准输入输出流、properties)
1、序列流(SequenceInputStream ):序列流主要的作用就是整合字节输入流,将很多的进口整合成一个这里着重讲一下多于两个输入流的整合:步驟:创建三个输入流创建vector集合存入这些输入流将这些输入流变成枚举类型 Vector.elements();创建序列流(第二种构造方法)输出流package cn.njupt;import java.io.Fil...原创 2018-12-11 12:04:08 · 228 阅读 · 0 评论 -
javaSE (三十四)File类和递归练习(统计文件夹大小、拷贝文件夹、层级打印文件夹、斐波拉契数列、获取1000阶乘全部0和尾部0数目、约瑟夫环)
1、统计文件夹大小:思路:套用之前已经做过的,键入一个路径,若有效则封装成File类初始化计数器len,若文件夹下是文件,则记录文件.length()若文件夹下是文件,则记录文件.length()若文件夹下是文件夹,递归输出len注:递归也可以删除文件夹,但是一定要先删除里面的文件使之为空,才能删除这个文件夹,所以要用到递归删除代码:package cn.njupt;im...原创 2018-12-11 19:58:11 · 335 阅读 · 2 评论 -
javaSE (三十五)多线程 ( 多线程实现方法和区别、同步代码块和方法(线程安全))
1、多线程实现的两种方法的区别:查看源码的区别:1) 继承Thread:由于子类重写了Thread的run(),当调用start()的时候,直接找子类的run()方法2)实现Runnable:构造函数中传入了Runnable的引用,成员变量记住了它,start()调用run()方法时内部判断成员变量Runnable的引用是否为空,不为空的时候编译看的是Runnable的run(),运行时执...原创 2018-12-12 16:23:43 · 324 阅读 · 0 评论 -
javaSE (三十六)Runtime类、Timer类、两个线程之间的通信、三个及以上线程通信、sleep和wait的区别
1、Runtime类:runtime类其实是单例模式(见上文)的一个体现,它的构造方法被私有化,可以在代码中输入命令字符串控制计算机代码实例:package cn.xinhua;import java.io.IOException;public class ThreadTest { public static void main(String[] args) throws IOE...原创 2018-12-12 21:35:10 · 319 阅读 · 0 评论 -
javaSE (二十八)异常的两个分类、final、finally、finalize的区别、return在finally前后执行问题、异常练习题
1、异常的两个分类:编译时异常: 在编译某个程序时,有可能会发生的事情,比如文件找不到,这样的异常必须在编译的时候处理,如果不处理编译通不过运行时异常: 就是程序员犯的错误,需要回来修改代码2、final、finally、finalize的区别:final:修饰类不能被继承,修饰方法不能被重写,修饰变量只能被赋值一次finnally:是try语句中的一个语句体,不能单独使用,用来释放资源...原创 2018-12-08 21:35:53 · 367 阅读 · 0 评论 -
javaSE (十八)对象数组创建内存图、Collection体系图、Collection的一些方法、iterator遍历Collection里面的对象
其实Collection前面没什么好看的,就是熟悉API的过程1、对象数组创建内存图:1. 数组在堆里是连续的区域2. 引用是通过地址调用对象的集合与数组的区别:区别一:数组既可以存储基本数据类型,也可以存储引用数据类型,基本数据类型存储的是值,引用数据类型存储的是地址值集合只能存储引用数据类型(对象),也可以存储基本数据类型,但是会自动装箱变成对象区别二:...原创 2018-12-03 16:39:36 · 388 阅读 · 0 评论 -
javaSE (二十五)TreeSet原理、自然排序和选择器排序的比较、TreeSet几个练习
TreeSet和HashSet不同,底层是二叉树,可以保证输出有序二叉树,小的存储在左边(负数),大的在右边(正数),相等就不存返回0,集合中只有一个元素(保证输出唯一,比如属性值相同的对象,我就返回0)返回-1,集合倒叙返回1,怎么存怎么取(和根元素比较)两种方法保证输出有序:自然排序:用于自己创建的类的时候,让类implements Comparable,然后重写compar...原创 2018-12-05 20:11:00 · 501 阅读 · 0 评论 -
javaSE (三十七)互斥锁、线程组、线程的生命周期、线程池
1、互斥锁(ReentrantLock):互斥锁是JDK1.5的新特性,目的就是为了替换同步代码块(同步锁),使进程间的通信更加简洁下面重写我们上一篇的三个及三个以上线程间的通信:思路:ReentrantLock类的lock() 和unlock() 方法可以替换synchronized同步代码块(基本上就是可以直接替换)newCondition() 方法返回一个实现了Conditio...原创 2018-12-13 15:13:05 · 235 阅读 · 0 评论 -
javaSE (三十八)设计模式 ( 单例设计模式(饿汉式/懒汉式)、简单工厂模式、工厂模式、适配器模式、模板方法设计模式)
1、单例设计模式(饿汉式/懒汉式):概念:保证类在内存中只有一个对象思路:私有构造方法,其他类不能再访问该构造方法了创建本类对象(就在本类里创建),将对象的应用作为成员变量,并私有静态化(在这里又分为饿汉式和懒汉式,饿汉式直接引用连接对象,而懒汉式在第二步先创建引用,在第三步用一个判断语句,如果引用没有连接对象,就创建一个,如果有了,直接返回该引用)对外提供获取对象引用的方法getCl...原创 2018-12-13 15:14:01 · 415 阅读 · 0 评论 -
javaSE (三十二)找出字符串中重复的元素并写入文件、模拟正版软件使用次数期限、获取文件夹下的全部java文件
1、找出字符串中重复的元素并写入文件:问题:键入(或者从一个文件中读取)一个字符串,找出字符串中重复的元素并写入文件思路:键入字符串map存储写入文件代码:package cn.njupt;/* * * 键入一串字符,计算每个字符出现的个数,并输入到一个文件上 * 1、键入 * 2、hashmap存储 * 3、写入文件 */import java.io.Buf...原创 2018-12-10 18:23:48 · 231 阅读 · 0 评论 -
javaSE (四十二)javaSE阶段性总结
javaSE学习笔记终于把javaSE补完了,累啊写博客是为了自己专注于学习和总结,现在看来效果比手书好多了下一阶段:继续学javaEE算法温习强化学校的课题...原创 2018-12-15 18:25:24 · 3572 阅读 · 2 评论 -
javaSE (四十一)反射的概念、通过反射越过泛型检查
作为javaSE的最后一篇,反射更多的是一种编程理念或者说优化,对前面的java多态的一种优化,简单但是需要理解一下这篇文章写的很好:大白话说Java反射:入门、使用、原理1、反射的概念:反射是相对于正射来说的,正射是先通过构造方法创建类的对象,然后使用类的各种属性和方法而反射是什么时候想要用到这个类了,就通过类名把这个类加载进来,然后获得构造方法,获得属性和方法,更加地可持续方...原创 2018-12-15 18:21:56 · 425 阅读 · 0 评论 -
javaSE (四十)网络编程(TCP传输、服务器多线程、网络编程练习:反转字符串、上传文件)
1、TCP传输:1.客户端创建Socket链接服务端(指定ip地址,端口号),通过ip地址找到对应的服务器调用Socket的getInputStream和getOutputStream方法获取和服务器端相连的IO流2.服务器端创建ServerSocket(指定端口号)调用ServerSocket的accept方法接收一个客户端请求,得到一个Socket调用Socket的getI...原创 2018-12-15 12:46:08 · 836 阅读 · 0 评论 -
javaSE (三十一)IO字符流、用字符流.nextLine()反转文本、转换流内存示意图
1、字节流和字符流的区别其实字符流和字节流没多大区别,字符流也可以拷贝文件,但不推荐使用,因为读取的时候字节转字符,然后字符还是要转字节 (用码表来进行字节和字符之间的转换)2、什么时候用到字符流?“只读或者只写的时候”程序需要读取一段文本,或者需要写出一段文本的时候可以用字符流读取的时候按照字符大小读取的,不会出现半个中文这阵种情况写出的时候可以直接将字符串写出,不用转换成字符数组...原创 2018-12-09 22:53:07 · 298 阅读 · 0 评论 -
javaSE学习笔记_目录
IO字节流javaSE (二十九)IO.read()输出是int的原因、fileoutputstream的追加功能、用byte[]优化拷贝文件、Buffered缓冲区内存示意图javaSE (三十)IO流异常处理、图片加密处理、输入文件路径并拷贝文件内容、在文件中键入内容计算机基础知识javaSE (一)数据类型转换、++/–运算符javaSE (二)逻辑/位运算符、左移右移运算符、sw...原创 2018-12-09 18:43:14 · 3969 阅读 · 0 评论 -
javaSE (三十)IO流异常处理、图片加密处理、输入文件路径并拷贝文件内容、在文件中键入内容
1、IO流异常处理:IO流异常处理一般可以写得如下这么复杂(面试备用)alt + shift + z 直接try-catch ,不过没有加finally因为作用域的问题,需要在外面创建BufferedInputStream对象并且初始化为null(要是不初始化,就不需要关闭了)最后关闭的时候,需要来个嵌套try-catch,去日报关闭一个代码中try-finally,没加catch(...原创 2018-12-09 17:57:15 · 310 阅读 · 0 评论 -
javaSE (二十九)IO.read()输出是int的原因、fileoutputstream的追加功能、用byte[]优化拷贝文件、Buffered缓冲区内存示意图
1、IO.read()输出是int的原因:fileinputstream: 文件输入流 文件字节输入到jvmfileoutputstream: 文件输出流 jvm输出到文件答:因为字节输入流可以操纵任意类型的文件,比如图片音频等,底层都是以二进制形式存储的,如果每次都返回buye,有可能读到中间的时候会遇到11111111,这个是byte类型的-1,遇到-1就不读取了,所以要用int...原创 2018-12-09 15:01:44 · 561 阅读 · 0 评论 -
javaSE (三十九)网络编程(网络编程三要素和Socket、UDP传输、多线程UDP传输)、三次握手&四次挥手
1、网络编程三要素:地址:定位电脑本地回路地址:127.0.0.1广播地址:255.255.255.255端口号:定位电脑中的程序o~65525尽量使用1024以上的协议:数据交换的规则/标准UDP: 面向无连接,数据不安全,速度快,不区分客户端与服务端TCP:面向连接(三次握手),数据安全,速度略低,分为客户端和服务端(三次握手:客户端先向服务端发起请求,服务端响应请求,传...原创 2018-12-13 20:59:34 · 268 阅读 · 0 评论 -
javaSE (二十七)HashMap和Hashtable的区别、用集合模拟扑克牌斗地主分发与查看、集合总结
1、HashMap和Hashtable的区别:共同点:底层都是哈希算法,都是双列集合不同点:HashMap是线程不安全的,效率高,JDK1.2版本,可以存储null键和值HashMap是线程安全的,效率低,JDK1.0版本,不可以存储null键和值...原创 2018-12-07 21:11:01 · 319 阅读 · 0 评论 -
javaSE (十七)Date、SimpleDateFormat、Calendar类的方法(计算在这个世界上生活多少天、显示今夕何年何月、判断闰年还是平年)
1、Date、SimpleDateFormat类计算在这个世界上生活多少天:Date类的构造方法:Date()、Date(long date)Date类的常用方法:void setTime(long date)、public long getTime()SimpleDateFormat是日期标准化类,和Date结合使用SDF常用构造方法:SimpleDateFormat(String pa...原创 2018-12-03 11:27:33 · 1043 阅读 · 0 评论 -
javaSE (二十一)LinkedList模拟栈和队列
1、LinkedList模拟栈:如果是模拟队列的话,把list.removeLast()改成list.removeFirst(),先进先出Stack.javapackage cn.njupt;import java.util.LinkedList;public class Stack { private LinkedList list = new LinkedList(); p...原创 2018-12-04 15:22:30 · 238 阅读 · 0 评论 -
javaSE (二十)ArrayList去除集合里面重复的元素(普通类型、引用类型)
撒旦原创 2018-12-04 11:06:06 · 351 阅读 · 2 评论 -
javaSE (十三)int和String的转换、自动装箱/拆箱、Integer面试问题----自动装箱的范围
1、int和String的转换:1) int -- > String a) int + " "; (推荐) b) String.valueOf(int) (推荐) c) Integer in = new Integer(int i) ; in.toString(); d) Integer.toString(int i);2) String -- > in...原创 2018-12-02 14:45:01 · 607 阅读 · 1 评论 -
javaSE (七)四种访问修饰符、静态、私有、局部、匿名内部类
四种访问修饰符:原创 2018-11-29 16:57:48 · 558 阅读 · 0 评论 -
javaSE (十二)数组冒泡排序、选择排序、二分查找、冒泡排序的改进
冒泡排序:代码:package cn.njupt;public class ArrayReverse { public static void main(String[] args) { int[] arr = { 2, 34, 100, 67, 8, 45 }; bubbleSort(arr); } public static void bubbleSort(int...原创 2018-12-02 11:22:51 · 329 阅读 · 0 评论 -
javaSE (二)逻辑/位运算符、左移右移运算符、switch语句
逻辑运算符 & | ^ !&: 与 有false则false| : 或 有true则true^: 异或 相同为false ,不同为true! :非 取反短路与&&和与& 的区别原创 2018-11-25 17:40:18 · 826 阅读 · 0 评论 -
javaEE (八)javaweb_Mysql&JDBC
下载和安装:Mysql原创 2018-11-22 18:56:02 · 244 阅读 · 0 评论 -
eclipse 使用技巧
一些eclipse使用技巧:ctrl+d是删除当前行。当光标在一行的两端时,按住shift+home/end可以选择当前行ctrl+shift+左右是选择一个单词,可以连点左右已选择多个。ctrl + shift + f 格式自动调整...原创 2018-11-10 13:55:52 · 176 阅读 · 0 评论 -
java学习路线图
原创 2018-10-26 14:27:53 · 218 阅读 · 0 评论 -
Arduino 开发笔记
全局变量;void setup(){pinModel();}void loop(){digitalWrite();}全局变量;void setup(){pinModel();}void loop(){digitalWrite();}原创 2018-10-28 14:28:35 · 214 阅读 · 0 评论 -
javaSE (三)循环语句、数组、按值传递(important)、控制跳转语句
Date:2018/11/26基本数据类型是分配在栈上的 引用类型是分配在堆上的基本数据类型 :没有涉及到new,所以没有在堆里面创建内存,在栈里面操作后弹栈,值传递不会改变值本身,所以才会出现不能互换变量的现象引用数据类型 涉及到new,在堆里面创建内存,可以通过地址再访问堆里面的内容。Q:java到底是值传递还是地址传递?A:只有值传递,因为地址也是值(j...原创 2018-11-26 21:36:59 · 707 阅读 · 3 评论 -
javaSE (十四)正则表达式演示(字符类、预定义字符类、Greedy 数量词)
1、正则表达式:字符类演示:package cn.njupt;public class ArrayReverse { public static void main(String[] args) { String regex1 = "[abc]"; &&& 代表单个字符 System.out.println("a".m原创 2018-12-02 16:40:26 · 488 阅读 · 0 评论 -
javaSE (二十四)关于java集合的一些的问题:为什么集合能够直接打印、HashSet到底是有序还是无序的、HashSet如何保证存储唯一?
1、为什么集合能够直接打印?System.out.println(HashSet has);答:因为集合的底层重写了toString方法,调用了StringBuilder类的.append()/.toString()方法将元素拼接起来 (特么这个 Iterator it = iterator();什么意思???没有对象供他引用啊用这个迭代器是干嘛的??) public String t...原创 2018-12-05 10:14:21 · 2486 阅读 · 0 评论 -
javaSE (六)多态(Polymorphism)、动态绑定、多态弊端、instanceof、abstract抽象类、接口(interface)
多态前提:要有继承关系要有方法重载要有父类对象引用子类对象 Father f = new Son()成员变量 f.name:编译看左边(父类),运行看左边(父类)(因为f还是属于Father)成员方法 f.print():编译看左边(看父类有没有这个方法,若没有,会报错,,如果父类有,子类没有,就直接用父类的),运行看右边(子类)(也叫动态绑定)静态成员方法:其实静态成员方法算...原创 2018-11-28 20:29:40 · 440 阅读 · 2 评论 -
javaSE (十一)StringBuffer类的append、insert、SB与String互相转换、数组SB相互转换、两个SB和String之间的区别、String和SB分别作为参数传递
1、StringBuffer类的append、insert:append:StringBuffer是字符串缓冲区,new的时候在堆里创建了一个对象,底层是一个长度为16的字符数组,当使用append方法时,不会再创建新的对象,不断向原缓冲区添加字符insert:直接在第几个指引出插入相应的数据,往后挤一挤~ppackage cn.njupt;public class ArrayRever...原创 2018-12-01 17:07:11 · 729 阅读 · 0 评论