java学习
昆昆欧粑粑
这个作者很懒,什么都没留下…
展开
-
java用awt实现简单画线功能,引力场技术(和网格吸附)实现端点吸附功能
内容:用java的awt实现画线功能,并实现端点吸附功能。代码:import java.awt.Color;import java.awt.Dimension;import java.awt.Frame;import java.awt.Graphics;import java.awt.Image;import java.awt.Point;import java.awt.event.M...原创 2018-07-02 10:56:19 · 981 阅读 · 0 评论 -
java泛型的类型擦除
java泛型的类型擦除泛型是 Java 1.5 版本才引进的概念,在这之前是没有泛型的概念的,但显然,泛型代码能够很好地和之前版本的代码很好地兼容。因为,泛型的信息只存在于代码编译阶段,在进入 JVM 之前,与泛型相关的信息会被擦除掉,叫做类型擦除。通俗地讲,泛型类和普通类在 java 虚拟机内是没有什么区别的。泛型类型擦除泛型类进入JVM之前会进行类型擦除,泛型类的类型参数如果没...原创 2018-11-07 12:50:22 · 172 阅读 · 0 评论 -
java泛型接口
java泛型接口泛型除了可以定义在类中,也可以定义在接口里面,这种情况我们称之为泛型接口。定义(和类一样)://接口泛型的使用方法interface IInterface<T> { T test(T t); //T表示test返回的是T类型的值,T代指了一个类型,比如String、Integer等等。}使用方法有两种:1、子类实现接口时候继续保...原创 2018-11-07 13:17:07 · 1446 阅读 · 0 评论 -
java函数可变参数(不确定参数)的使用
java可变参数当写了一方方法后,想让这个方法传入不确定的参数值,就要用到可变参数在jdk1.5加入了此方法,使用语法:数据类型 ... 可变参数名称如:int ... datapublic class Test { public static void main(String[] args) { int x = add(1,2,3,5,6,2); ...原创 2018-11-05 21:55:47 · 5223 阅读 · 0 评论 -
java的foreach循环
foreach循环语法for(数据类型 临时变量 : 数组名/类集名称)for (int data:a) { //a是一个数组、类集(可迭代的) System.out.println(data);}注意:只用于数组、类集内容的取得,不能修改数据。...原创 2018-11-05 21:59:42 · 1064 阅读 · 0 评论 -
@override注解——java
@override 准确注解检查当前类中的覆写方法与父类定义的同名方法是否相同,如果有任何一个地方不同,编译就会报错。class Test1 { public void print(){ System.out.println(1); }}class Test2 extends Test1 { @Override public void...原创 2018-11-20 23:23:12 · 405 阅读 · 0 评论 -
@Deprecated注解——java
@Deprecated 过期处理表示这个类或者方法在旧版本没有问题,但是在新版本不推荐使用了。加上@Deprecated注解,明确表示不建议别人再使用这个类或者方法。class Test1 { @Deprecated public void print(){ System.out.println(1); }} ...原创 2018-11-20 23:24:26 · 464 阅读 · 0 评论 -
@SuppressWarnings压制警告注解——java
@SuppressWarnings 压制警告当调用某些操作可能产生问题的时候就会出现警告信息,通过@SuppressWarnings告诉编译器忽略指定的警告,不用在编译完成后出现警告信息。比如@SuppressWarnings("deprecation")可以让编译器忽略掉使用过期方法而出现的警告:class Test1 { @Deprecated public ...原创 2018-11-20 23:37:11 · 4879 阅读 · 0 评论 -
用java函数式编程——Lambda表达式
函数式编程很多开发语言都开始支持函数式编程,其中最具备代表性的就是haskell。函数式编程和面向对象编程可以理解为两大开发阵营。在函数式编程中,所有的数据都是不可变的,不同的函数之间通过数据流来交换信息,函数享有跟数据一样的地位,可以作为参数传递给下一个函数,同时也可以作为返回值。函数式编程的表达方式更加符合人类日常生活中的语法,代码可读性也更强。实现同样的功能,函数式编程比面向对象编程...原创 2018-11-20 00:24:27 · 242 阅读 · 0 评论 -
用java扫描指定目录下的所有文件
用java扫描指定目录下的所有文件代码:import java.io.File;public class 列举当前目录下的所有文件 { static int count = 0 ; public static void main(String[] args) { String path = "C:" + File.separator + "Users" +...原创 2018-12-07 20:18:29 · 3783 阅读 · 0 评论 -
java泛型冒泡排序
java使用泛型进行冒泡排序,使得一个算法通用于所有的一维数组public class Bubble { public static void main(String[] args) { Integer[] arr = {5,6,4,3,2,1}; System.out.print("排序前:"); display(arr); ...原创 2018-12-18 20:58:38 · 1045 阅读 · 1 评论 -
java泛型快速排序
java使用泛型进行快速排序,使得一个算法通用于所有的一维数组//快速排序//划分成两个数组,通过递归给每一个子数组快速排序//1.设定关键字,比关键字小的放在一边,大的放在另一边//2.设置数组最右端为关键字//3.递归实现快速排序public class Quick { public static void main(String[] args) { I...原创 2018-12-18 21:00:16 · 295 阅读 · 0 评论 -
ArrayList、Vector、LinkedList对比
ArrayList、Vector、LinkedList作为List的三个常用子类,为序列化一维数组提供了很好的保障。他们有共同点和各自的特点。依次分析。介绍:ArrayList:动态数组,从jdk1.2开始,array(数组)的升级版本,实现动态扩容,从而节省了一定的空间。Vector:向量,自动增长数组,从jdk1.0就有LinkedList:链表,利用类之间的引用关系,实现链式...原创 2019-02-19 00:29:51 · 173 阅读 · 0 评论 -
synchronized是对象锁还是全局锁
都可以锁!synchronized(this)以及非static的synchronized方法,锁住的是括号里()的对象,如果要锁全局,就用synchronized(对象.class)。static 的synchronized方法,static方法可以直接类名.方法名()调用,无法使用this,所以它锁的不是this,而是类的Class对象。所以静态方法也相当于全局锁,锁住了代码段。具...原创 2019-02-20 15:09:59 · 1648 阅读 · 0 评论 -
java的“?”通配符
通配符通配符解决的是:一个方法可以接收所有的泛型类型,但是又不能够让用户随意修改。?通配符:作用于方法参数声明:public static void print(MyClass<?> myClass){}为什么 有通配符?在类中追加了泛型的定义后,避免了ClassCastException的问题,但是又会产生新的情况:参数的统一问题什么 意思?...原创 2018-11-07 12:32:39 · 931 阅读 · 0 评论 -
java之泛型
泛型——java的语法糖java泛型是一个守门员,出于安全性考虑,不再有类型转换异常。所谓的泛型指的是在类定义的时候并不会设置类中的属性或者方法的参数的具体类型,而是在类使用的时候在定义。泛型语法:class Text<T> { private T x;} <> 中的T被称为类型参数,用于指代任何类型(待传入)。规范起见,类型参...原创 2018-11-07 11:20:35 · 118 阅读 · 0 评论 -
用java swing编写一个简单的计算器
用java swing实现的一个简单的计算器:一些swing的基础应用。注释里有详解,直接上代码:package 简易计算器;import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;imp...原创 2018-07-03 13:44:24 · 16516 阅读 · 8 评论 -
java自写链表实现约瑟夫环
直接上代码:package 约瑟夫环;class node { public int data; public node next; public node(int data) { // TODO 自动生成的构造函数存根 this.data = data; this.next = null; }}class link { public node head; ...原创 2018-07-29 15:51:16 · 512 阅读 · 0 评论 -
罗马数字转化阿拉伯数字
罗马数字包含以下七种字符:I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。...原创 2018-07-27 14:13:50 · 1362 阅读 · 0 评论 -
把一个用数组表示的整数加一(十进制进位模拟)
题目:给定一个非负整数组成的非空数组,在该数的基础上加一,返回一个新的数组。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示...原创 2018-08-15 11:37:33 · 963 阅读 · 0 评论 -
搜索二叉树的删除
搜索二叉树删除比较麻烦,具体看代码里的解释:(删除带有两个子节点的节点需要用到中序后继节点) //先寻找中序后继节点,再进行删除 //寻找中序后继节点 public Node getHouJiNode(Node delNode) { //定义中序后继节点 Node houji = delNode; //定义中序后继的父节点 Nod...原创 2018-08-29 19:56:31 · 790 阅读 · 0 评论 -
java中方法重写(覆写)和方法重载的区别
方法重载和方法重写的区别:概念上:重载是一个类里面相同名称不同参数的方法,重写是继承中的子类对父类方法的构造 范围上:重载在一个类里,重写是在有继承关系的类里 权限要求:重载没有权限要求,子类重写权限必须要>=父类(比如父类是default,子类就只能是public或者default) ...原创 2018-10-15 22:39:15 · 1602 阅读 · 0 评论 -
一个关于java构造块、构造方法、静态块、继承的面试题
看下面一段代码,求执行顺序:class A { public A() { System.out.println("1A类的构造方法"); } { System.out.println("2A类的构造快"); } static { System.out.println("3A类的静态块"); }}public class B extends A { public...原创 2018-10-15 22:57:04 · 613 阅读 · 0 评论 -
java之普通代码块、构造块、静态块
代码块定义:{}中定义的一段代码根据代码块出现的位置以及关键字不同,分为下面四类代码块普通代码块定义在方法中的代码块,解决方法中变量重命名的问题,了解即可,没什么意义。public class 代码块 { public static void main(String[] args) { { int n = 5; } int n = 0; System....原创 2018-10-15 23:07:22 · 140 阅读 · 0 评论 -
java之继承
继承相关概念 无需重写原有类代码的基础上,就拥有类所有属性与方法,对原有类进行功能上的扩展 继承强调可重用 子类(派生类) 父类(超类,基类) 语法:class 子类 extends 父类 继承的限制 子类实例化前,先调用父类的构造方法,产生父类对象后再调用子类构造方法 Java只允许单继承,不允许多继承,但允许多层继承,即c继承b...原创 2018-10-15 23:13:42 · 75 阅读 · 0 评论 -
设计模式之单例模式与多例模式
单例模式什么是单例模式?答:有些类在一整个软件体系中可能只能产生一个对象,就好比太阳系里面,太阳这个类只能实例化一个太阳,如果实例化两次就出问题了。所以限制一个类只能实例化一个对象,就是单例模式。如何限制别人来new出新对象?在java中,使用private修饰构造函数,限制外部不能调用构造函数,从而限制实例化。而我们在类的内部直接new出想要的对象个数(单例模式就是1个对象)...原创 2018-10-30 00:36:00 · 211 阅读 · 0 评论 -
java异常处理throws与throw与assert
throws、throw、assert关键字throws:作用于方法上在进行方法定义时候,如果要明确告诉调用者本方法可能产生哪些异常,可以使用throws方法进行声明,表示将异常抛回给调用方。并且当方法出现问题后可以不进行处理。 public static int calculate(int x,int y) throws Exception { return x /...原创 2018-11-03 12:36:07 · 2319 阅读 · 0 评论 -
java的异常处理
java的异常处理 一、异常体系Error:描述java运行时内部错误与资源耗尽错误。这种内部错误一旦出现,除了告知用户并使程序安全终止之外,再无能为力。Exception:IOException:程序本身没有问题,但由于IO处理导致的程序出错。RuntimeException:由于程序错误导致的错误。另外两个概念:非受查异常(无需强制处理):所有继承于Erro...原创 2018-11-03 12:37:03 · 137 阅读 · 0 评论 -
java中for循环和foreach循环区别与快慢
for循环和foreach循环的区别与快慢:foreach请看:java的foreach循环for循环是基于下标(偏移量)来定位的循环。 foreach是基于指针直接移动(地址运算)的循环。 对于通过下标访问的ArrayList。使用下标访问的for循环效率本身就很高。所以foreach这种指针直接移动的效率可能甚至不如通过下标访问。但差别不会太大 但对于链式结构LinkedList...原创 2018-11-07 10:44:48 · 2992 阅读 · 0 评论 -
Object类的方法
Object是所有类的父类,任何类都默认继承Object。Object类到底实现了哪些方法?1.clone方法保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。2.getClass方法final方法,获得运行时类型。3.toString方法该方法用得比较多,一般子类都有覆盖。4.fi...转载 2019-03-11 11:27:41 · 142 阅读 · 0 评论