Java
文章平均质量分 52
yguoelect
幼稚无知造就了今天幼稚无知的我~
展开
-
区分多态和重载
多态是基于对抽象方法的覆盖来实现的,用统一的对外接口来完成不同的功能。重载也是用统一的对外接口来完成不同的功能。那么两者有什么区别呢? 重载,是指允许存在多个同名方法,而这些方法的参数不同。重载的实现是:编译器根据方法不同的参数表,对同名方法的名称做修饰。对于编译器而言,这些同名方法就成了不同的方法。它们的调用地址在编译期就绑定了。 多态:是指子类重新定义父类的虚方法(vi原创 2017-03-22 21:32:05 · 18266 阅读 · 0 评论 -
java多线程-同步函数的锁
/* 通过分析打印出错误票多线程的运行出现了安全问题。 问题的原因: 当多条语句在操作同一个线程共享数据时,一个线程对多条语句执行了一部分,还没有执行完 另一个线程参与进来执行。导致共享数据的错误。 解决办法: 对多条操作共享数据的语句,只能让一个线程都执行完。在执行过程中,其他线程不能参与执行。 java对多线程的安全的问题提供了专业的解决方式。同步代码块。synch原创 2017-04-27 16:22:29 · 18531 阅读 · 0 评论 -
java多线程-单例设计模式的问题及解决
/* 单例设计模式饿汉式 class Single{ private static final Single s = new Single(); private Single(){} public static Single getInstance(){ return s; }}*/// 懒汉式// 懒汉式后加载初始化对象,如果多线程则出现安全问题/* 会new n多原创 2017-04-27 17:06:08 · 18568 阅读 · 0 评论 -
java多线程之死锁设计
class Test implements Runnable{ private boolean flag; Test(boolean flag){ this.flag = flag; } public void run(){ if(flag){ synchronized(MyLock.locka){ System.out.println("if locka");原创 2017-04-27 22:39:04 · 18391 阅读 · 0 评论 -
Java通过正则表达式提取数字串或者字符串
1。通过rex:("\\d+")来提取字符串Scanner sc = new Scanner(System.in);String[] a = sc.nextLine().split("\\d+");for(String s : a){ System.out.print(s+" ");}2。通过rex: [^0-9] 来提取数字 Scanner sc原创 2017-06-17 22:30:13 · 32419 阅读 · 0 评论 -
Java读取文本内容
一行一行的读取文本内容 BufferedReader buf = null; String line = null; try {// buf = new BufferedReader(new FileReader(FINAL_PINTOHANZI_FILE)); buf = new BufferedReader(new InputStreamR原创 2017-07-12 21:08:45 · 25266 阅读 · 0 评论 -
模块依赖关系分析-Java实现
题目描述: 1.一个系统的若干模块间存在相互依赖的关系,如果A模块调用了B模块的接口,那么成为A依赖B,记为A->B 如果A->B,B->A,那么称A和B模块都存在循环依赖。 如果A->B,B->C,C->D,D->B,那么BCD存在循环依赖,A不存在循环依赖,依次类推。 先输入若干模块之间的关系,判断某模块是存在循环依赖。 输入:原创 2017-08-18 14:13:31 · 24758 阅读 · 0 评论 -
Java中Comparable和Comparator的用法
对于自己定义的数据结构,进行排序时,需要我们给予他一定的排序规则,这就涉及到了Java中的两个常用的接口Comparable<T>和Comparator<T>的实现。* Comparable public interface Comparable<T> 1.Comparable接口对实现它的每个类的对象强加一个整体排序。 这个排序被称为类的自然排序 ,类的compareTo方法被称为其自然比原创 2017-08-20 22:10:49 · 29554 阅读 · 2 评论 -
判断一个字符串是否是有效IP(包括IPv4和IPv6)
IPv4是 Internet Protocol version 4 的缩写,表示IP协议的第四个版本。现在互联网上绝大多数的通信流量都是以IPv4数据包的格式封装的。IPv4使用32位2进制位的地址,因此IPv4的地址空间是 2^32 = 4294967296。IPv4通常用点分十进制记法书写,例如192.168.0.1,其中的数字都是十进制的数字,中间用实心圆点分隔 一个IPv4原创 2017-08-30 16:41:05 · 35423 阅读 · 1 评论 -
字符串组合“S1+C1+S2+C2+S3”-欢聚时代笔试题
题目描述给定任意非空字符串,请编程回答存在多少种如下组合的情况“S1+C1+S2+C2+S3”,其中S1/S2/S3为任意非空字符串,C1/C2为任意字符,且C1=C2. 举例说明:例如字符串“duowanisgood”可以分为两种“du+o+wanisg+o+od”和“du+o+wanisgo+o+d” 可以从中看出字符串的长度最短为5,我们利用双指针滑动的方式解决本题 publi原创 2017-09-17 17:19:47 · 19542 阅读 · 1 评论 -
两个栈实现一个队列,两个队列实现一个栈-JAVA
两个栈实现一个队列import java.util.EmptyStackException;import java.util.Stack;class Solution { Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer> stack2 = new Stack<Integer>(); public void原创 2017-08-31 23:49:07 · 19462 阅读 · 0 评论 -
最大连续子串和
public int MaxSubArray(int[] array){ int sum = array[0]; int temp = array[0]; int indexFirst = 0; int indexLast = 0; for(int i=1; i<array.length; i++){ if(temp < 0原创 2017-10-31 14:59:37 · 19916 阅读 · 0 评论 -
java 多线程—实现Runable接口
/* 多窗口同时买票。创建线程的第二种方式:实现Runable接口步骤:1、定义类实现Runable接口2、覆盖Runable接口中的run方法 将线程要运行的代码存放在该run方法中 3、通过Thread类建立线程对象。4、将Runnable接口的子类对象作为实际参数传给Thread类的构造函数。 为什么要将Runable接口的子对象传递给Thread的构造函数。原创 2017-04-27 10:10:57 · 19845 阅读 · 0 评论 -
Java 多线程学习
java多线程/*通过对API查找,java已经提供了对这类事物的描述,就是Thread类创建线程的第一种方式,继承Thread类步骤:1、定义类继承Thread2、复写Thread类中的run方法 目的:将自定义的代码存储在run方法中,让线程运行。3、调用线程的strart方法 该方法两个作用:启动线程,调用run方法运行结果每次都不同,因为多个线程都在获取CPU的执行权,cpu执行到谁,谁运行,明确一点,某个时刻,只有一个程序正在运行,多喝除外cpu坐在快速切换,原创 2017-04-25 10:53:11 · 18320 阅读 · 0 评论 -
Java Swing
容器是放置界面组件的地方,在Swing中提供了两个容器,一个是Jframe,它是一个最基本的窗口容器,一个是Jpanel,也称为面板,面板可以放置在Jframe容器或者Applet上。常用的布局方式是首先设计几个Jpanel面板,再将组件添加到Jpanel上,然后将Jpanel按照布局要求在添加到Jframe上。Jframe容器。是java.awt.Frame的扩展版本,是一个Window原创 2017-03-22 21:38:09 · 19415 阅读 · 0 评论 -
Java中字符串的比较
提到比较 首先想到的 == 运算,但是这个比较的是两个字符串的地址是否相等,而非内容public class operatorCampare(){ public static void main(String[] args){ String s="123"; String m=“123“; boolean n = s原创 2017-03-13 16:59:04 · 18654 阅读 · 0 评论 -
java正则表达式
元字符正则表达式中的写法意义..代表任意一个字符\d\\d代表0~9任意一个数字\D\\D代表任意一个非数字字符\s\\s代表空白字符\S\\S代表非空白字符\w\\w代表可用作标识符的字符,但不包括$\W\\W代表不可用作标识符的字符\p原创 2017-03-13 20:56:43 · 18578 阅读 · 0 评论 -
java类的构造方法
特点:构造方法没有返回值构造方法要与本类同名类的修饰:public如果类中没有明确的构造方法,编译器会自动创建一个不到参数的默认构造方法原创 2017-03-13 22:54:51 · 18535 阅读 · 0 评论 -
Java的Scanner
public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); String[] s = sc.nextLine().split("\\s+"); //一空格的方式输入 Strin原创 2017-03-24 21:59:01 · 18231 阅读 · 0 评论 -
Java中的java.lang.Math
package suiyi;public class MathClassTest { public static void main(String[] args) { // TODO 自动生成的方法存根 System.out.println(Math.abs(-1)); // double float int long System.out.println(Math.aco原创 2017-03-24 22:39:47 · 19930 阅读 · 0 评论 -
java中final方法
final修饰的变量为常量final修饰的方法不能被重写,不能被覆盖final修饰的类不能被继承原创 2017-03-16 17:53:02 · 18195 阅读 · 0 评论 -
java排序算法(一)冒泡排序
java排序算法—冒泡排序。何为冒泡,举个栗子:观察气泡在水中的变化,气泡在底部时较小,当气泡慢慢浮出水面,气泡越来越大。冒泡排序又称交换排序。冒泡排序的比较方式是从第一个元素开始,依次比较相邻的元素,如果发现前面的大于后面的,则交换顺序,第一轮交换完毕后,最后一个变成了最大的数,在按照前面的规则,直至完成正确的排序。时间复杂度最好O(n),最差是反序复杂度为O(n2)原创 2017-03-27 12:06:08 · 18356 阅读 · 0 评论 -
java排序算法(三)插入排序
利用java实现插入排序算法,插入排序,逐一与已经排好序的数据做比较,将该数放到合适的位置时间复杂度最差O(n2),最好O(n)package cn.sortAlgorithm;public class InsertSort { public static void main(String[] args) { int[] arr = {1, 3, 5, 2, 2, 0}; System.out.print原创 2017-03-29 11:25:13 · 18337 阅读 · 0 评论 -
java排序算法(二)选择排序
利用java实现选择排序算法,选择排序原理记录元素所在的位置(索引),然后进行交换,即把最大的数或者最小的数和最后一位或者第一位进行交换,保证了他们的最小最大位置,然后依次进行第二位,第三位。。。。直至所有的数都保证在正确的顺序位置。原创 2017-03-29 11:15:03 · 18231 阅读 · 0 评论 -
Java的jdk安装与环境变量配置
今天在另外一台电脑重新安装了java,竟然忘记了环境变量的配置,所以写下来以示提醒首先,右击计算机图标,选择“属性“。接下来按图所示:分别新建:变量:JAVA_HOME,变量值:D:\Program Files\Java\jdk1.8.0_121变量:CLASSPATH,变量值:,;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar原创 2017-05-14 00:22:43 · 19540 阅读 · 1 评论 -
Java常见面试题——总结一
一、Java基础String类为什么是final的。HashMap的源码,实现原理,底层结构。说说你知道的几个Java集合类:list、set、queue、map实现类咯。。。描述一下ArrayList和LinkedList各自实现和区别Java中的队列都有哪些,有什么区别。反射中,Class.forName和classloader的区别Java7、Java8的新特性(baidu...原创 2018-06-22 15:13:31 · 3565 阅读 · 1 评论