![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
makabaka##
胜利的曙光跟前进的希望,来自于再努力使把劲儿的坚持当中
展开
-
Java基础补课
1、 为什么Java代码可以实现一次编写,到处运行?JVM是Java跨平台的关键。 Java代码在运行之前,首先被编译器编译为字节码文件,然后JVM会将编译后的字节码翻译成为特定平台上的机器码并运行,也就是说,只要在相应的平台上安装对应的JVM就可以运行我们的字节码文件。因为Java代码在运行之前只需要被编译1次JVM是实现java字节码文件跨平台的桥梁2、为啥要有包装类?Java是面向对象的语言,它的思想就是一切皆对象。但是8种基本数据类型它们不具备对象的特征,为了解决这个问题,Jav原创 2022-03-31 00:46:13 · 257 阅读 · 0 评论 -
生产者消费者问题:信号灯法
package com.liu.gaoji;//测试:生产者消费者问题 --> 信号灯法//电视台(节目,广告)、观众、电视public class TestPC2 { public static void main(String[] args) { TV tv = new TV(); TVStation tvStation = new TVStation(tv); Audience audience = new Audience(tv原创 2022-03-14 23:23:59 · 69 阅读 · 0 评论 -
生产者消费者问题:管程法
//生产者消费者问题:管程法public class TestPC { public static void main(String[] args) { SynContainer container=new SynContainer(); new Productor(container).start(); new Customs(container).start(); }}//生产者class Productor extends Th原创 2022-03-14 23:12:24 · 183 阅读 · 0 评论 -
线程同步,解决不安全的线程
举两个例子,不安全的取票系统和不安全的银行取钱系统出现这种情况的原因是有可能几条线程同时操作一个对象的时候冲突了,导致几条线程取到的是同一张票//这是一个不安全的买票系统//出现了负数和重复的数,这不是我们想得到的情况public class UnsafeBuyTicket { public static void main(String[] args) { BuyTicket buyTicket = new BuyTicket(); new Thr原创 2022-03-14 21:53:00 · 189 阅读 · 0 评论 -
线程停止,休眠sleep,礼让yield,强制执行join,优先级
线程停止,最好不要用系统给定的方法,而是自己设置一个标志位package com.liu.demo03;public class ThreadStop implements Runnable { private boolean flag = true; @Override public void run() { int i=0; while (flag){ System.out.println(">>&.原创 2022-03-14 20:44:02 · 193 阅读 · 0 评论 -
线程状态,
原创 2022-03-14 20:26:50 · 69 阅读 · 0 评论 -
守护线程Deamon
//守护线程public class DaemonThread { public static void main(String[] args) { God god = new God(); You you = new You(); //上帝线程 Thread thread = new Thread(god); thread.setDaemon(true);//设置守护线程,默认是false,false上帝会一直守护原创 2022-03-14 19:08:35 · 211 阅读 · 0 评论 -
静态代理模式
//静态代理模式public class Marry { public static void main(String[] args) { WeddingCompany weddingCompany = new WeddingCompany(new Myself()); weddingCompany.happyMarry(); }}//===============================================//父接口 结婚i原创 2022-03-14 18:14:55 · 191 阅读 · 0 评论 -
线程创建的三种方式
线程创建的三种方式线程创建的三种方式1、继承Thread类,重写run()方法,调用start()方法一个例子:多线程同时下载三张图片2、继承runnable接口,重写run()方法,丢入runnable接口实现类,调用start方法第二种方法修改方法1中的例子继承Runnable接口,可以多个线程同时操作一个对象,模拟一下抢火车票的例子多线程模拟龟兔赛跑3、继承callable接口,重写call方法,返回一个布尔值还是用一下下载图片的例子,效果是一样的执行线程的四个步骤线程创建的三种方式1、继承Th原创 2022-03-14 17:10:36 · 568 阅读 · 0 评论 -
Java之进制转换
10进制转化其他进制对应的方法返回值10进制转化2进制Integer.toBinaryString(10进制数);一个2进制字符串10进制转化8进制Integer.toOctalString(10进制数);一个8进制字符串10进制转化16进制Integer.toHexString(10进制数);一个16进制字符串10进制转化r进制Integer.toString(10进制数, r);一个r进制字符串其他进制转换10进制对应的方法返回值...原创 2022-03-06 21:28:13 · 180 阅读 · 0 评论 -
Java转换大小写之toLowerCase()和toUpperCase()
String 类的 toLowerCase()方法可以将字符串中的所有字符全部转换成小写,而非字母的字符不受影响。语法格式如下:字符串名.toLowerCase() //将字符串中的字母全部转换为小写,非字母不受影响toUpperCase() 则将字符串中的所有字符全部转换成大写,而非字母的字符不受影响。语法格式如下:字符串名.toUpperCase() //将字符串中的字母全部转换为大写,非字母不受影响...原创 2022-03-06 20:33:53 · 564 阅读 · 0 评论 -
java中indexOf和substring的用法
indexOf() 方法有以下四种形式1、public int indexOf(int ch):返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1 。2、 public int indexOf(int ch, int fromIndex):返回从 fromIndex位置开始查找指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。3、 int indexOf(String str):返回指定字符在字符串中第一次出现处的索引,原创 2022-03-06 19:18:58 · 623 阅读 · 0 评论 -
Scanner之 next() 和 nextLine()区别
1、2、应该可以明显看到两者的输出结果有区别next()方法是以空格作为结束的标志,因此只输出空格前面的部分而nextLine()是以回车作为结束的标志,因此可以全部输出原创 2022-03-05 16:34:31 · 45 阅读 · 0 评论 -
java中三种打印方法print , printf, println有什么区别
System.out.println()示例:public class Text { public static void main(String[] args) { System.out.println("Hello World!"); System.out.println("Hello World!"); System.out.println("Hello World!"); }}输出效果可以看出,println是换行输出原创 2022-03-05 16:24:38 · 622 阅读 · 0 评论 -
抽象类 抽象方法 abstract 接口 interface
定义一个抽象类public abstract class Action {}1、抽象类不能够实例化,只能由子类去实现(extends关键字继承)2、抽象类中可以写普通的方法,但是抽象方法必须要写在抽象类中3、约束定义一个接口public interface UserServer { //interface关键字去定义一个接口 int a=99; void run(); }可以继承多个接口,必须要重写接口中的方法接口作用:1、约束2、定义原创 2022-03-04 11:18:50 · 96 阅读 · 0 评论 -
继承继承继承
继承只需要一个extends关键字子类可以继承父类的所有方法子类又叫派生类私有成员变量无法继承person是一个父类在父类中定义一些成员变量和方法//父类public class Person { private int age; public String name; public void say(){ System.out.println("雷猴啊!"); }}然后写一个Student类继承Person类里面不用写任何方法.原创 2022-03-03 00:30:59 · 38 阅读 · 0 评论 -
封装封装封装
public class Animals { //私有成员变量 //封装 private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() {原创 2022-03-03 00:09:34 · 151 阅读 · 0 评论 -
有参构造和无参构造 new关键字实际上就是在调用构造器
public class Person { //一个类如果什么都不写,它也会存在一个方法 //显示的定义构造器 String name; //构造器 //使用new关键字,本质上是在调用构造器 //用来初始化值 //构造器的名称必须和类名相同,且没有返回值类型 public Person() { this.name="xiaoming"; } //一旦定义了有参构造 //无参就必须显示定义 p原创 2022-03-02 22:08:06 · 396 阅读 · 0 评论 -
二维数组的定义和遍历输出
//二维数组//每个一维数组中的元素都是一个一维数组//三维数组一样嵌套public class ArrayDemo04 { public static void main(String[] args) { //定义一个一维数组 int[][] array={{1,2},{3,4},{5,6},{7,8}}; //相当于定义了一个四行两列的数组 for (int i = 0; i < array.length; i++原创 2022-03-02 08:56:00 · 581 阅读 · 0 评论 -
打印数组中元素,增强for循环,反转数组
增强for循环打印数组中元素public class ArrayDemo03 { public static void main(String[] args) { int[] arrays={1,2,3,4,5}; //增强for循环打印出数组中每个元素 for (int array : arrays) { System.out.print(array+" "); }调用方法 System.out原创 2022-03-02 08:45:05 · 292 阅读 · 0 评论 -
数组的静态初始化和动态初始化
//静态初始化 int[] a={1,2,3,4,5,6,7,8,9,10}; //System.out.println(a[10]); //动态初始化 int b[]=new int[10]; b[0] = 1; b[1] = 2; b[2] = 3; b[3] = 4; b[4] = 5; b[5] = 6; ...原创 2022-03-02 08:10:56 · 78 阅读 · 0 评论 -
ArrayIndexOutOfBoundsException:数组下标越界异常
public class ArrayDemo02 { public static void main(String[] args) { //静态初始化 int[] a={1,2,3,4,5,6,7,8,9,10}; System.out.println(a[10]);//下标越界 }}原创 2022-03-02 07:48:58 · 269 阅读 · 0 评论 -
如何定义一个int类型的数组,并求出数组中所有元素的和
package kuangshen.array;//数组public class Demo01 { public static void main(String[] args) { //如何定义一个数组 int[] nums;//声明一个数组 nums = new int[10];//给数组开辟一个空间 //也可以写为 //int[] nums=new int[10]; //赋值原创 2022-03-01 10:26:45 · 1561 阅读 · 0 评论 -
Java用递归写一个求阶乘的方法
Java用递归写一个求阶乘的方法参数较小时使用比较方便参数较大不建议使用递归public class Demo04 { public static void main(String[] args) { System.out.println(test(5)); } //求阶乘 public static int test(int n){ if(n==1){ return 1; }else原创 2022-03-01 10:10:38 · 522 阅读 · 0 评论 -
java可变参数
可变参数public class Demo03 { public static void main(String[] args) { Demo03 demo03 = new Demo03(); demo03.test(1,2,3); } //可变参数 public void test(int... i){ System.out.println(i[1]); }}...原创 2022-03-01 01:22:47 · 169 阅读 · 0 评论 -
java方法重载
方法重载public class Demo01 { public static void main(String[] args) { double num=add(1,2,3); //实参 System.out.println(num); } //加法 public static int add(int a,int b){ //形参 return a+b; } //方法重载,参数数量或类型改变原创 2022-03-01 01:20:03 · 121 阅读 · 0 评论 -
for循环打印九九乘法表
for循环打印九九乘法表原创 2022-02-27 18:26:34 · 149 阅读 · 0 评论 -
for循环打印一个五行的三角形
for循环打印一个五行的三角形原创 2022-02-27 18:23:24 · 484 阅读 · 0 评论 -
public class和class区别
public class和class区别原创 2022-01-04 14:24:32 · 402 阅读 · 0 评论 -
Java语言基本数据类型
Java语言基本数据类型逻辑类型boolean(true false)整数类型intbyteshortlong字符类型char浮点类型float(单精度)double(双精度)类型转换例如int x=10;float y;y=x;则输出y的结果为50.0int x=(int)34.89;则输出x的值为34...原创 2022-01-02 12:37:07 · 195 阅读 · 0 评论 -
Scanner类
Scanner 类运用原创 2022-01-02 12:17:14 · 142 阅读 · 0 评论 -
冒泡排序算法
冒泡排序算法1、比较数组中相邻两个元素的大小,如果前者比后者大,就交换它们的位置2、每一次比较,都会产出一个最大或者最小的数字3、下一轮则可以少一次排序4、依次循环,直到结束public class ArrayDemo05 { public static void main(String[] args) { int[] a={5,8,4,2,6,3,1}; int[] b=sort(a); System.out.println(Arrays.原创 2022-03-02 10:23:36 · 305 阅读 · 0 评论 -
稀疏数组的转换以及如何还原
稀疏数组普通数组转换为稀疏数组当数组中大部分元素为0,或者为同一值元素的数组时,可以转换为稀疏数组来保存import java.util.Arrays;//稀疏数组public class ArrayDemo06 { public static void main(String[] args) { /* 先创建一个二维数组11*11 0代表没有棋子 1代表白棋 2代表黑棋 0 0 0 0 0原创 2022-03-02 11:59:34 · 66 阅读 · 0 评论 -
面向过程和面向对象
面向过程和面向对象面向过程的思想(线性思维)1、步骤清晰简单,第一步做什么,第二部做什么。。。。2、面向过程适合处理一些较为简单的问题举个例子:把大象放进冰箱总共分几步?第一步、把冰箱门打开;第二步、把大象放进冰箱;第三步、把冰箱门关上面向对象的思想(OOP 面向对象编程)1、分类的思维模式,首先解决问题需要哪些分类,对这些分类进行单独思考。最后,对某个分类下的过程进行面向过程的思索2、面向对象适合处理复杂的问题,适合处理需要多人协作的问题面向对象编程的本质以类的方式组织代码,以对原创 2022-03-02 12:30:02 · 54 阅读 · 0 评论 -
类与对象的创建
例如,先写一个学生类定义该学生类的属性 姓名和年龄定义一个方法任何一个类中只有属性和方法//学生类public class Student { //属性 String name; int age; //方法 public void print(){ System.out.println(this.name+",你好"); }}类是抽象的,所以需要实例化成为具体的对象,才能调用其中的属性和方法实例化用到new关原创 2022-03-02 19:22:33 · 42 阅读 · 0 评论