java基础(详细)巩固
本人学习过程
乐乐想学会java
大一新人学习中
展开
-
注解的简单学习?
前言当下的开发中都推荐使用注解,这样就可以免去写麻烦的xml配置,是十分便利的一项技术什么是注解(Annotation)?注解其实就是代码中的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相对应的处理。为什么要用到注解?传统的方式中,我们通过配置文件(xml文件)类告诉文件类是怎么运行的,有了注解技术以后,我们可以通过注解告诉类如何运行注解可以给方法、类注入信息Java.lang包存在的五个基本的Annotation1@override该注解告诉编译器要检查该方法是实现父类翻译 2020-11-17 13:48:38 · 390 阅读 · 0 评论 -
java多维数组
package 小练习;public class Test5 { public static void main(String[] args) { int match =0; int a[][][]=new int [3][3][3]; for(int i=0;i<3;i++) for(int j=0;j<3;j++) for(int k=0;k<3;k++) { a[i][j][k] = match; match++;原创 2020-07-16 11:36:26 · 91 阅读 · 0 评论 -
装饰器模式
问题:假设我们有一份手抓饼,但是加不同的配菜,这样就会产生很多很多必要但重复的类:如果用继承的话,由于配菜之间两两搭配,三三搭配都有,是十分客观的,最终导致类的数量爆炸增长手抓饼接口和具体的一个手抓饼实现package decorator;/** * Description:手抓饼接口 描述抽象的手抓饼 */public interface HandPancake { /** * 提供手抓饼 */ String offerHandPancake(); /**转载 2020-07-14 13:42:17 · 115 阅读 · 0 评论 -
TreeSet测试例
这里定义了两个版本:一个按照部件编号排序,所以对同名的会作为不同个体输出下面是用定制的比较器按名输出,所以同名元素当做一个输出!如Faker改为Master,输出·元素个数分别为4,3package 集合;import java.util.*;public class TreeSetTest { public static void main(String[] args) { TreeSet<Item> parts = new TreeSet<Item>(); p原创 2020-07-14 12:54:18 · 112 阅读 · 0 评论 -
HashSet测试例
这个例子将会读取10个单词散列到桶中并且用迭代器访问package 集合;import java.util.HashSet;import java.util.*;public class SetTest { public static void main(String[] args) { HashSet<String> words = new HashSet<String>(); long totalTime = 0; try(Scanner in原创 2020-07-14 10:57:58 · 147 阅读 · 0 评论 -
java学习(拓展)——java闭包
第一个类package 内部类;public class Counter { public Count add() { return new Count() { int counter =0; public void adder() { if(counter>=10) { System.out.println("计数结束"); return; } counter++; System.out.println(原创 2020-07-13 17:23:21 · 160 阅读 · 0 评论 -
IO流
IO流流,一端移动到另一端,流是一个抽象、动态的概念,是一连串连续动态的数据集合(IO,in&out)数据流从数据源与程序间传输,以程序为中心,进为输入流,出为输出流核心类类说明File文件类InputStream字节输入流OutputStream字节输出流Reader字符输入流Writer字符输出流Closeable...原创 2020-07-11 23:41:01 · 103 阅读 · 0 评论 -
java学习(17)——研究并发
什么是线程多线程——类似于计算机多任务,与多进程相比,多线程的特点是共享数据(会产生一些风险,但使得线程之间的通信要比进程之间的更容易)、比进程更加轻量级。创建撤销的开销要远小于对进程的开销。先来看看一个使用两个线程的简单程序,它可以在银行账户之间完成资金转账:package threads;import java.util.*;/*** A bank with a number of bank accounts*/...原创 2020-07-03 16:16:02 · 198 阅读 · 0 评论 -
java学习(16)——集合
java集合框架最早的版本java只是为最常用的数据结构提供一组类:Vector、Stack、Hashtable、BitSet与Enumeration接口。其中Enumeration接口提供一种用于访问任意容器中各个元素的抽象机制。后续的版本中设计者对整个体系进行优化,希望将传统的类融入新的框架中,并使得整体类库规模小利于学习。集合接口与实现分离与现代数据结构类库的常见做法一样,java集合类库也将接口与实现分离。下面以队列为例:队列接口指出可以在队列的尾部添加元素,在头部删除元素。并且可以查翻译 2020-07-01 11:07:52 · 99 阅读 · 0 评论 -
java学习(15)——泛型程序设计
为什么要用泛型程序设计?A: 意味着写的代码可以对多种不同的对象重用。例如:可能不希望为手机String和File对象分别编写不同的类,此时一个ArrayList类就可以收集任何类的对象。一般泛型在需要大量使用到通用类型(如Object和Comparable接口)的强转时用来代替比较好——————————————————————————定义简单泛型类泛型类:有一个/多个类型变量的类public class Pair <T>{ private T first; private翻译 2020-06-30 09:49:06 · 90 阅读 · 0 评论 -
java学习(14)——断言/日志
在一个具有分析性自我保护能力的程序中常常 使用到断言断言假设确信某个属性符合要求,且代码的执行依赖这个属性,则可以使用断言如:double y =Math.sqrt(x);假如可以断定这里的x是一个非负数,原因可能有:是一个结果非负的计算的结果x是一个方法参数,方法中限制了x必须为正数输入其他更多对x的正负产生限定的情况此时我们可能期待对这个数再进行一次小检查断言:断言机制允许在测试期间向代码中国插入一些检查,而在产生代码中会删除这些检查语法:assert condition翻译 2020-06-30 08:39:56 · 160 阅读 · 0 评论 -
java学习(13)异常
程序中保证错误出现的时候至少做到:————————————————————————————向用户通知错误保存所有的工作允许用户妥善的退出程序————————————————————————————一般要考虑的问题:————————————————————————————用户输入错误设备错误物理限制代码错误————————————————————————————异常分类在java中,异常对象都是派生于Throwable类的一个类实例。另外,用户可以自定义自己需要的异常类翻译 2020-06-29 13:08:36 · 136 阅读 · 0 评论 -
java学习(12)——内部类(静态方法获取对应类)
内部类(inner class)内部类是定义在另一个类中的类,使用内部类可以达到很多数据访问上的需要使用内部类的主要原因:内部类可以对同一个包中的其他类隐藏内部类方法可以访问定义这个类的作用域中的数据,包括原本私有的数据内部类原本对于简洁的实现回调很重要,现在有了更好的lambda表达式and##内部类具有一个指向外层的隐式引用##在java中,只有内部类能被private修饰内部类属于编译器现象,编译器会将内部类转换为一般的类文件,而虚拟机对此并不知情,它只知道可用的引翻译 2020-06-24 15:10:11 · 650 阅读 · 0 评论 -
java学习(11)lambda表达式
什么是lambda表达式?它是一个可以传递的代码块,可以在之后一次或者多次执行。按时间间隔多次完成操作(创建ActionListener实现类的一个实例,然后同样传到一个Timer类的一个实例中。)语法语法:比如,要比较两个字符串长短:(String first,String second) ->first.length() - second.length()这是一个简单的lambda表达式,其整体含义就是一个代码块以及必须传入的代码规范。这个就是基本的规范(参数)->{表翻译 2020-06-19 10:07:31 · 226 阅读 · 0 评论 -
java学习(10)接口
接口(interface)是一个抽象类型,机制的抽象,接口一般以interface来声明,一个类通过实现接口的方式实现所有接口中的抽象概念首先要明确,接口不是类,只是对实现它的类的一组需求&接口与类的相似点一个接口可以有多个方法接口相应的字节码文件必须在与包名称匹配的目录结构中&接口与类的不同点:接口不能用来实例化对象接口没有构造方法接口中所有的方法都是抽象方法接口中只有static和final变量,不过一般都没有接口不是被类继承了,是被类实现了接口支持多继承(原创 2020-06-18 23:46:09 · 152 阅读 · 0 评论 -
接口中的静态方法(类)和默认方法(对象)
接口中的default方法(默认方法)一、概念1. 接口提供一个默认实现的方法,并且不强制实现类重写此方法2. 默认方法使用default关键字来修饰 二、引入背景1. 当一个接口添加新方法时,需要所有的实现类都重写新方法,影响到了已有的实现类,可能导致应用崩溃3. 默认方法可以不强制重写,也不会影响到已有的实现类4. 例如Iterable接口的foreach方法,就是一个默认方法, 参数是一个Consumer对象 三、使用1. 当一个实现类实现了多个接口,多个原创 2020-06-18 18:17:51 · 785 阅读 · 0 评论 -
java学习(9)抽象
抽象依托于继承产生————抽象如果按照实际的继承关系的话,生物的进化史从普遍的单细胞生物到了当今各式各样的生物,是一个从抽象到具体的过程。抽象类关键词abstract,使得一个方法不需要立即被具体的写出来即使类中不含有抽象方法,我们亦可以将一个类声明为抽象含有一个或者多个抽象方法的类则必须被声明为抽象除了抽象方法之外,抽象类还可以包含字段和具体方法,不过一些程序员认为这样不是很好。、抽象类不能被实例化抽象类的对象变量只能应用非抽象子类的对象这样导致p直接调用方法时,程序一定知道这个原创 2020-06-18 10:24:56 · 79 阅读 · 0 评论 -
java学习(8)继承
继承继承的定义(注意没有权限修饰符)public class Manager extends Employee{…}在java中,所有的继承都是公有继承此时Employee是Mananger的父类或超类(super前缀)Manger是Employee的子类(sub前缀);————————————————————————————子类的“权利”子类可以根据权限控制符访问超类中被设置为允许访问的方法,当然子类也允许**重写(覆盖)**掉父类的同名方法用@override对覆盖做好标记一个原创 2020-06-18 09:57:35 · 212 阅读 · 0 评论 -
java学习(7)类和包
摘自程序员黄小斜的java技术江湖公众号上的GitHub学习笔记,作个人学习使用。java包的概念java中包的作用是封装一组类,子包和接口的机制。软件包用于:防止命名冲突:例如可以有两个同名的类,用包.可以清楚的辨别类的从属提供受控访问:受保护和默认有包级别的访问控制,受保护的成员可以通过同一个包及其子类中的类访问。默认成员(没有任何访问说明符号)只能由同一个人包中的类访问。包可以被视为数据封装,包可以被视为数据隐藏这玩意有点像C++的命名空间?包也限定了访问权限,拥有访问权限的类才能原创 2020-06-18 08:44:18 · 248 阅读 · 0 评论 -
java学习(6)————对象与类
构造器即C++中的构造函数。!!: java中的构造器总是伴随着new操作符一起使用另一种获取类实例的方法:静态工厂方法【相关知识点:单例】【多了一层“皮囊”用处挺大】————————————————————————————var声明方法中的局部变量在java10中(其他版本还没测),如果可以从变量的初始赋值来推导出它们的类型,则可以使用var关键字来声明局部变量而无需指定类型Employee Harry = new ("Harry Hacker",50000,1989,10,1);原创 2020-06-16 20:33:27 · 122 阅读 · 0 评论 -
java学习(5)————java自带的时间类
表示时间Date 基本(util包里的)DateFormat 字符串和时间对象转化Calendar 日期和时间进行转化(日期处理用这个)时间一维的向量|0刻度 (标准纪元:1970年 1月 1日 00:00:00)——————————————————————————————————>>>使用long标识时间,可以表示从基准时间前后几亿年。————获取当前时刻的“数值”:1 | long now = System.currentTimeMilli原创 2020-06-15 17:37:48 · 352 阅读 · 0 评论 -
java《核心技术》第三章学习
package com.study.java;public class Class1 { eclipse常用快捷键ctrl+左键 去往声明位置Ctrl+1 快速修复(最经典的快捷键,就不用多说了,可以解决很多问题,比如import类、try catch包围等)Ctrl+Shift+F 格式化当前代码Ctrl+Shift+M 添加类的import导入Ctrl+Shift+O 组织类的import导入(既有Ctrl+Shift+M的作用,又可以帮你去除没用的导入,很有用)Ctrl+Y 重做(与原创 2020-06-15 17:37:32 · 123 阅读 · 0 评论 -
java学习(4)—— final关键字
finalfinal变量final变量有成员变量和非成员变量(方法内的局部变量),在类成员中final经常和static一起使用,作为类常量使用。其中类常量必须在声明时候立即初始化,final成员变量可以在构造函数初始化。public class main{ public static final int i ; 报错,必须初始化,因为常量在常量池中就存在了,调用时不需要类的初始化, 所以必须在声明时初始化。 public static final int j; Main(){ i=2;原创 2020-05-11 17:24:13 · 158 阅读 · 0 评论 -
Java中的null关键字杂谈
null含义在java中,null值表示引用不指向任何对象。在运行过程中系统发现使用了这样的引用时可以立即终止进一步的访问。如果是对象的field的话系统在初始化对象的时候会将那些对象的值赋为null。方法内变量,程序员需要自己给变量初始化为null【对于field字段的链接在学完反射后在此处添加】 1 classT{ 2 Object obj = null; 3 Object obj1;//系统在初始化的时候自动给它赋null 4} 5 class T{ 6 public void原创 2020-05-11 16:11:35 · 557 阅读 · 0 评论 -
java学习(3)String类分析
string和包装类string基础字符串广泛运用在java编程中,在java中字符串也属于对象,java提供了String类来创建和操作字符串。java中的字符串不是内置的类型,而是在标准java类库中提供一个自定义类@创建字符串创建字符串最简单的方式如下:String greeting =“菜鸟教程”;在代码中遇到字符串常量时,这里的值是"菜鸟教程",编译器会自动使用该值创建一...原创 2020-05-02 13:03:55 · 299 阅读 · 0 评论 -
java 学习(2)基本数据类型、类型和装箱
Java基本数据类型变量就是申请内存来储存值。也就是说,当创建变量的时候,需要在内存中申请空间Java的两大数据类型内置数据类型引用数据类型--内置数据类型:java自带了八种基本类型(四整数,两浮点,一字符,一布尔)bytebyte基本数据类型是8位,有符号的,以二进制补码表示的整数最小值是-128最大值是127默认值是0byte类型用在大型数组中节约空间,主要...原创 2020-04-29 10:55:05 · 271 阅读 · 0 评论 -
java学习(1)Math类相关
Hellojava的编译过程:javac程序作为编译器,将文件Hellojava.java编译成Hellojava.class。java程序启动java虚拟机,虚拟机执行编译器编译到类文件中的字java中的数学函数以及变量{在Math类中,包含了各种各样的数学函数计算平方根的方法:double x=4;double y = Math.sqrt(x);System .out.p...原创 2020-04-20 09:59:21 · 121 阅读 · 0 评论