java
菜小波
决心完成自由梦
展开
-
多线程 异步
多线程 异步异步操作的本质:DMA多线程的缺点适用范围异步和多线程关系Future 模式实现java 多线程异步调用异步操作的本质:DMADMA就是直 接内存访问的意思,也就是说,拥有DMA功能的硬件在和内存进行数据交换的时候可以不消耗CPU资源。只要CPU在发起数据传输时发送一个指令,硬件就开 始自己和内存交换数据,在传输完成之后硬件会触发一个中断来通知操作完成。这些无须消耗CPU时间的I/O操作正是异步操作的硬件基础。所以即使在DOS 这样的单进程(而且无线程概念)系统中也同样可以发起异步的DMA操原创 2020-12-20 16:24:56 · 800 阅读 · 1 评论 -
适配器模式
适配器模式package no4;public class Test12 { public static void main(String[] args) { PowerA powerA = new PowerATmpl(); work(powerA); PowerB powerB = new PowerBTmpl(); //work(powerB); Adap...原创 2020-04-22 02:08:03 · 97 阅读 · 0 评论 -
Object类
Object类是类层次结构的根类。每个类都使用Object作为超类。所有对象(包括数组)都实现这个类的方法。所有类都是Object类的子类。public String toString()返回对象的字符串表示形式。 一般来说, toString方法返回一个“textually代表”这个对象的字符串。 结果应该是一个简明扼要的表达,容易让人阅读。 建议所有子类覆盖此方法。该toStrin...原创 2020-04-15 11:22:50 · 216 阅读 · 0 评论 -
接口应用-策略模式
策略模式Strategy Pattern ,定义了一系列的算法,将每一种算法封装起来,并可以相互替换使用,策略模式让算法独立于使用它的客户应用而独立变化。OO设计原则:1.面向接口编程(面向抽象编程)2.封装变化3.多用组合,少用继承package no3;public class Test8 { public static void main(String[] args) { ...原创 2020-04-15 10:24:48 · 144 阅读 · 0 评论 -
模板方法模式
模板方法模式定义一个操作中的算法的骨架,而将一些可变部分的实现延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定的步骤。package no3;public class test7 { public static void main(String [] args) { UserManager um = new UserManager(); um...原创 2020-04-15 09:51:32 · 137 阅读 · 0 评论 -
多态性
多态性:对象在运行过程中的多种形态。方法的重载与重写。对象的多态性。用父类的引用指向子类对象(用大的类型去接受小的类型,向上转型、自动转换)package no2;public class Test5 { public static void main(String[] args) { Chicken hc = new HomeChicken ("Little chicken"...原创 2020-04-14 11:45:50 · 85 阅读 · 0 评论 -
接口
interface 接口名称{全局常量;抽象方法;}接口就是规范,标准;需要被具体的类去实现。package no2;public class Test4 { public static void main(String[] args) { Girl mm = new Girl("Mary"); mm.sleep(); mm.eat(); mm.run(); ...原创 2020-04-14 11:03:46 · 105 阅读 · 0 评论 -
抽象类
抽象类引入:例子:特点引入:用abstract关键字声明的类称为抽象类。很多具有相同特征和行为的对象可以抽象为一个类。很多具有相同特征和行为的类可以抽象为一个抽象类。例子:package no2;public class Test3 { public static void main(String[] args) { Man man = new Man(); man.mo...原创 2020-04-14 10:45:28 · 97 阅读 · 0 评论 -
Final关键字
package no2;/** * final关键字 * 1、使用final声明一个属性,就是常量,命名通常全大写(规范) * 2、常量必须在定义时或在构造器中初始化 * 3、使用final声明的方法,不能被子类重写,只能被继承 * @author HLB * */public class Test2 { public static void main(String[]...原创 2020-04-13 19:33:46 · 91 阅读 · 0 评论 -
java继承的练习
package cosmetic;public class Test { public static void main(String[] args) { ImportCosmeticManager cm = new ImportCosmeticManager(); cm.add(new Cosmetic("香奈儿","进口",1000)); cm.add(new Cosmeti...原创 2020-04-13 17:47:58 · 141 阅读 · 0 评论 -
方法重写与super关键字
方法重写:package no2;public class OverridingMethod { public static void main(String[] args) { HomeDog1 homeDog = new HomeDog1("旺财"); homeDog.print(); homeDog.eat(); HuskyDog1 hd = new Husk...原创 2020-04-13 17:12:43 · 150 阅读 · 0 评论 -
java面向对象之继承简单复习一下
package no2;/** * 只能继承非私有的数据(属性和方法) * 创建子类对象时,父类的构造方法也会被调用,来初始化数据。 * protected可以被继承(就是用来被继承的) * @author HLB * */public class Test1 { public static void main(String[] args) { HomeDog homedo...原创 2020-04-12 23:58:24 · 86 阅读 · 0 评论 -
对象数组与管理
对象数组与管理对象数组就是数组中的每个元素都是类的对象,原创 2020-04-10 14:57:04 · 158 阅读 · 2 评论 -
单例设计实例
单例设计实例介绍:步骤:例子:在项目中为什么使用单例?能不能使用构造方法私有化+静态方法(不用对象)来替代单例呢?介绍:单例设计模式:保证一个类中只有一个实例,并提供一个访问它的全局访问点。 防止外部去new这个对象.步骤:构造方法私有化; (类外就不能new了)声明一个本类对象;给外部提供一个静态方法获取对象实例。(可以用类名调用了)例子:package no1;public...原创 2020-04-10 13:44:45 · 88 阅读 · 0 评论 -
代码块
1.普通代码块:在方法中写的代码块2.构造代码块:在类中定义的代码块(new对象时,比构造方法先执行),每次创建对象的时候都会执行一次。3.在类中使用static声明的代码块称为静态代码块(比构造代码块先执行),只在创建第一次对象时执行一次。我们在项目开发的时候通常会使用静态代码块来初始化只调用一次的数据。4.同步代码块(多线程中)。package no1;public class t...原创 2020-04-08 12:13:30 · 85 阅读 · 0 评论 -
内存结构与main方法详解
内存结构与main方法详解class文件加载到内存的结构图:声明为static的方法有限制:main方法class文件加载到内存的结构图:写好源文件以后通过javac编译成class文件,如果我们要去运行这个程序,首先虚拟机里有一个类加载器Class Loader会把这个类加载到虚拟机里,存在静态方法区内存块里,我们要去使用的时候,要new这个对象的时候,就要从静态方法区里通过类的信息去创建...原创 2020-04-07 12:35:22 · 246 阅读 · 0 评论 -
static关键字
static关键字作用:案例:代码:修改代码:作用:修饰属性,则声明为static的变量实质上是全局变量(生命周期直到程序结束)。修饰方法:那么该方法与对象无关,或者说是共享,可直接用类名调用。修饰类:可修饰内部类。静态方法不能访问非静态属性和方法,因为静态方法先加载。案例:代码:package no1;public class test7 { public static v...原创 2020-04-07 12:09:41 · 93 阅读 · 0 评论 -
一对一关系,对象简单实现
一对一关系,对象简单实现package no1;public class test6 { public static void main(String[] args) { Hero hero = new Hero("刘备",300); Weapon weapon = new Weapon("双股剑",3); //把两个对象关联起来 hero.setWeapon(wea...原创 2020-04-07 11:38:49 · 283 阅读 · 0 评论 -
值传递与引用传递
值传递与引用传递例一:例二例三:例四:例一:package no1;public class test2 { public static void main(String[] args) { int x = 10; //基本数据类型的局部变量在栈里 method(x); System.out.println("x="+x); } public static void me...原创 2020-04-07 11:09:26 · 87 阅读 · 0 评论 -
java构造方法
当新对象被创建的时候,构造方法会被调用。每一个类都有构造方法。当类中没有定义构造函数时,系统会指定给该类加上一个空参数的构造函数。这个是类中默认的构造函数。当类中如果自定义了构造函数,这时默认的构造函数就没有了。Java中构造方法重载和方法重载很相似。可以为一个类创建多个构造方法。每一个构造方法必须有它自己唯一的参数列表。构造方法的方法名必须与类名相同构造方法没有返回类型,也不能定义为vo...原创 2020-04-06 19:29:08 · 163 阅读 · 0 评论 -
java复习1之面向对象
关于面向对象的理解,由于目前书籍都不在身边,所以就先不写相关的问题了,具体的待日后的博客中专门来写一下,关于面向对象的理解希望读者自己根据自己的老师讲解或者MOOK查看相关课程来搞懂,如果不喜欢大学老师一本正经的讲解,为你们提供以下来自千锋教育的课程资源:链接:https://pan.baidu.com/s/14Zm7JCJdwmh9xbU5mEvU4Q 提取码:7sc3链接:https:...原创 2020-03-12 17:59:20 · 237 阅读 · 0 评论 -
递归入门之找感觉
在重复中找变化,在变化中找重复!递归就是把一个问题分成一个小的子问题加上一个较大规模的问题,而较大规模的问题可以以同样的模式划分下去,直到只剩一个显而易见的小问题(我们能直接给出答案的时候)。如果是入门者,建议看完下面的例子后回过头来好好琢磨我写的这段话。网上的有些人认为递归是3步走,我个人并不建议把算法思想固化成工厂化步骤,因为问题是千变万化的,计算机也是不断进步的,但不能取代的只有人类...原创 2020-03-12 00:51:53 · 109 阅读 · 0 评论 -
java数组之前的检验案例-双色球
package 双色球案例;import java.util.Scanner;import java.util.Arrays;import java.util.Random;public class Test17 { public static void main(String[] args) { //定义相关的变量 int[] userRedBall = new in...原创 2020-03-11 22:28:45 · 122 阅读 · 0 评论 -
java复习1之数组(进阶)
二分查找 排序在前一篇文章中讲过了,所以二分查找也就有了基础,那么在代码中有middle = start + (end + start)/2;请问你还有哪些方法不?(提示:位运算?为啥不直接(start+end)/2呢?),请在评论区留下你的思考吧!package 二分查找;public class test { public static void main(String[] args...原创 2020-03-11 15:06:47 · 185 阅读 · 0 评论 -
java复习1之数组
写在前面:前期比较简单的东西,就不写自己的见解了,贴几个java学习入门的视频,如果有初学者要入门,或者老手要复习基础知识,大家可以去学习一下(建议养成知识付费的习惯,至少随手一赞,一关注,让小波心里不在凉凉呀…这课程可是小波真金白银和时间换来的,大家加油呀,少走弯路,踏踏实实走向更好的未来!)需要后续的视频教程也可以私信我呀,小波闲下来都会尽量回复的。链接:https://pan.bai...原创 2020-03-10 18:20:10 · 505 阅读 · 0 评论 -
byte c=(byte)-129,byte d=(byte)128
byte c = (byte) -129;System.out.println(c);byte d = (byte) 128;System.out.println(d);/**output:127-128*/原因:我们知道byte类型的取数范围是-128~127,而且这个是编码方式决定的,Java中正数用源码表示,负数用补码表示,第一位是符号位。-129的...原创 2019-08-24 19:01:19 · 1190 阅读 · 2 评论 -
右移运算符>>和无符号右移>>>
计算机表示数字正负不是用+ -加减号来表示,而是用最高位数字来表示,0表示正,1表示负1.有符号右移>>(若正数,高位补0,负数,高位补1)正数:例如4>>2首先写出4的二进制数,因为是正数所以最高位为0,也就是第一个0000 0000 0000 0000 0000 0000 0000 0100右移两位得到(高位补0)000000 0000 0000 0000 ...原创 2019-08-24 19:05:11 · 850 阅读 · 0 评论 -
位逻辑运算符和逻辑运算符的区别
用js代码了解位逻辑运算符和逻辑运算符的区别一:逻辑运算符1:逻辑与 &&2: 逻辑或 ||3:逻辑非!从字面意思上就可以看出来逻辑运算符用于进行逻辑运算的,他的返回值只有true和false,接下来了解一下逻辑运算符的特点;1: 逻辑与&&(表达式1 && 表达式2) 表达式1和表达式2必须全部返回true才可以整体返回...原创 2019-08-24 19:12:42 · 834 阅读 · 0 评论 -
位运算的应用场景:
1:使用位运算来判断奇数偶数console.log( 22 & 1);//返回0 console.log(23 & 1);//返回112说明:在前边看出任何数转换成二进制数,若为偶数,那么他最后一位肯定为0;否则为1;因此使用按位与将这个数与1进行操作,1转换为二进制是000……01因此与1进行按位与运算偶数返回0,反之返回1;2:使用按位运算符交换两个数...原创 2019-08-24 19:15:29 · 637 阅读 · 1 评论 -
编码 Unicode ASCII Binary
Java可以把字符作为整数对待。由于Unicode编码采用无符号编码,可以存储65536个字符(0x000~0xffff),所以Java中的字符可以处理大多数国家的语言文字。ASCII是“美国信息交换标准编码”的英文字头缩写,可称之为“美标”。美标规定了用从0到127的128个数字来代表信息的规范编码,其中包括33个控制码,一个空格码,和94个形象码。形象码中包括了英文大小写字母,阿拉伯数字,标...原创 2019-08-24 19:18:08 · 292 阅读 · 0 评论 -
C Cpp Java运算符优先级总结与提升
优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。表达式的结合次序取决于表达式中各种运算符的优先级。优先级高的运算符先结合,优先级低的运算符后结合,同一行中的运算符的优先级相同。优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。相同优先级中,按结合性进行结合。大多数运算符结合性是从左到右,只有三个优先级是从右至左结合的,它们是单目运算符、条件...原创 2019-08-24 19:34:30 · 224 阅读 · 0 评论 -
C,Java中赋值语句作为条件判断
在C/C++中 是判断赋值后的值与0的关系在java中得看赋值返回值类型,得是布尔类型true,若为其他类型(如:int)就会报错public classTest{ publicstatic void main(String [] lkl){ boolean flag= false; if(flag=true){ ...原创 2019-08-24 19:46:14 · 2961 阅读 · 2 评论 -
java eclipse在打印时为啥汉字要换行写
import java.util.Scanner;public class T { public static void main(String[] args) { System.out.println("输入:"); Scanner scanner = new Scanner(System.in); String str = scanner.nextLine(); ...原创 2019-08-24 22:13:42 · 246 阅读 · 0 评论 -
byte a; a = a + 1不对是可以理解的,但a++, 或者a += 1为什么是对的呢?
byte a = 1;a += 1;a = a + 1;//该行会报错改为a=(byte)(a+1);就不会报错了。那么a+=1为什么就不报错呢,反编译看下,发现就是上面我们修改后的结果a=(byte)(a+1);也就是碰到简式运算符,jvm自动帮我们做了转换。当然,这里a定义为long型,两个都不会报错。...原创 2019-08-24 15:11:38 · 1039 阅读 · 0 评论