java基础学习
文章平均质量分 60
java基础学习从helloword到多线程基础
Locus-
沉舟侧畔千帆过,病树前头万木春
展开
-
常用类14/其他常用类的使用
其他常用类的使用(非重点)1.System2.Math3.BigInteger和BigDecimalSystem类Math类BigIntegerBigDecimal其他常用类的使用原创 2021-08-11 20:39:44 · 77 阅读 · 0 评论 -
Java开发常用词汇表
Java开发常用英语单词表第一章:public['pʌblik] 公共的,公用的static['stætik] 静的;静态的;静止的void:[vɔid] 空的main:[mein] 主要的 重要的class:[klɑ:s] 类system:['sistəm] 系统 方法out:[aut] 出现 出外print:[print ] 打印eclipse:[i’klips] java编程软件第二章:string:[striŋ] 字符串类型double:['dʌbl] 双精度浮点型原创 2021-08-08 09:49:21 · 1266 阅读 · 0 评论 -
多线程安全问题
多线程安全问题使用同步机制将单例模式中的懒汉式改写为线程安全的public class BankTest {}class Bank(){}private static Bank instance = null;public static Bank getInstance(){ if(instance == null){ instance = new Bank(); } return instance; }方式一:效率差变成线程安全加一个syn原创 2021-03-08 22:01:32 · 117 阅读 · 0 评论 -
单例设计模式
单例设计模式设计模式种类繁多创建型模式共5种: 工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式共7种: 适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式共11种: 策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式,饿汉式单例模式package new3;public class SingletonTest1 { public static原创 2021-02-17 13:49:17 · 63 阅读 · 0 评论 -
线程的安全问题的解决方法-同步方法
同步方法如果操作共享数据的代码完整的声明在一个方法中,我们可以将此方法声明同步的一·实现类:将要同步的方法单独挑选出来package new1;public class demo4 { public static void main(String[] args) { Window1 w = new Window1(); //此时只造了一个对象 Thread t1 = new Thread(w); //一个对象放到三个构造器中,相当于三个线程用的同一个对象原创 2021-02-14 09:54:42 · 187 阅读 · 1 评论 -
线程的安全问题的解决方法-锁
理解线程的安全问题尝试加入sleeppackage new1;public class demo3 { public static void main(String[] args) { window t1 = new window(); window t2 = new window(); window t3 = new window(); t1.setName("窗口1"); t2.setName("窗口2")原创 2021-02-12 17:55:48 · 100 阅读 · 0 评论 -
java基础:多线程基础例题1
多线程基础例题1创建三个窗口卖票,总票数100张先用Thread方法写一遍代码package new1;public class demo3 { public static void main(String[] args) { window t1 = new window(); window t2 = new window(); window t3 = new window(); t1.setName("窗口1");原创 2021-02-11 00:03:11 · 134 阅读 · 0 评论 -
java基础:线程的优先级
线程的优先级MAX_PRIORITY:10MIN_PRIORITY:1NORM_PRIORITY:5 -->默认优先级如何获取和设置当前线程的优先级:不修改getPriority():package new1;public class demo2 { public static void main(String[] args) { MyThread3 h1 = new MyThread3(); h1.setName("线程一");原创 2021-02-11 00:02:16 · 115 阅读 · 0 评论 -
java基础:多线程的Runnable方法
多线程的Runnable方法实现Runnable接口:创建一个实现了Runnable接口的类实现类去实现Runnable中的抽象方法:run()创建实现对象将此对象作为参数传递到Thread类的构造器中,创建Thread类的对象package new1;import java.util.MissingFormatArgumentException;public class demo4 { public static void main(String[] args) {原创 2021-02-10 23:59:51 · 1150 阅读 · 0 评论 -
多线程Tread中的常用方法
多线程的方法Tread中常用的方法start():启动当前线程;调用当前线程的run()run():通常需要重写Thread类中的方法,将创建的线程要执行的操作声明在此方法中currentThread():静态方法,返回执行当前代码的线程getName():获取当前线程的名字setName():设置当前线程的名字yield():释放当前cpu的执行join():在线程a中调用线程b的join(),此时线程a就进入阻塞状态,知道线程b完全执行完以后,线程a才结束阻塞状态。stop():已过原创 2021-02-10 15:44:36 · 447 阅读 · 0 评论 -
Java异常
Java异常异常是什么异常是什么?实际工作中,遇到的情况不可能是非常完美的。比如:你写的某个模块,用户输入不一定符合你的要求、你的程序要打开某个文件,这个文件可能不存在或者文件格式不对,你要读取数据库的数据,数据可能是空的等。我们的程序再跑着,内存或硬盘可能满了等等。软件程序在运行过程中,非常可能遇到刚刚提到的这些异常问题,我们叫异常,英是:Exception,意思是例外。这些,例外情况,或者叫异常,怎么让我们写的程序做出合理的处理。而不至于程序崩溃。异常指程序运行中出现的不期而至的各种状原创 2021-07-23 14:06:25 · 59 阅读 · 0 评论 -
Java内部类
内部类内部类就是在一个类的内部在定义一个类,比如,A类中定义一个B类,那么B类相对A类来说就称为内部类,而A类相对B类来说就是外部类了。成员内部类静态内部类局部内部类匿名内部类举例先建立一个外部类包含内部类public class Outer { private int id=10; public void out(){ System.out.println("这是外部类的方法"); } public class In原创 2021-07-22 23:13:16 · 53 阅读 · 0 评论 -
Java抽象类与接口
抽象类本章节为基础补充抽象方法:只有方法的名字,没有方法的实现(abstract)要点:抽象类的所有方法,继承了他的子类,都必须去实现他的方法,除非子类也是abstract方法缺点:但是抽象类有个缺陷,只可以单继承。所以后面要学习接口,因为接口可以多继承注意:抽象类不能new出来,只能靠子类去实现。抽象类可以写普通方法抽象方法只能在抽象类中写抽象类有构造器接口接口比抽象类还要抽象开发中常常会先设计好接口,然后找外包去依次实现区别:普通类:只有具体实现抽象类:具原创 2021-07-22 16:36:42 · 55 阅读 · 0 评论 -
Java基础:什么是面向对象编程-封装,继承,多态
封装封装(数据的隐藏)我们程序设计要追求**“高内聚,低耦合”**。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用。通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏。其实封装可以让程序变得更合理,比如下面段代码可以合理的展示人的年龄(将超过200以上的age改为0)package first;不合理public class Demo3 { public static void main(String[] args)原创 2021-02-07 19:38:26 · 146 阅读 · 0 评论 -
Java基础:什么是面向对象编程1
面向对象编程面向过程与面向对象的区别面向过程思想:步骤清晰简单,第一步做什么,第二步做什么…面对过程适合处理一些较为简单的问题面向对象思想:物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索。面向对象适合处理复杂的问题,适合处理需要多人协作的问题!对于描述复杂的事物,为了从宏观上把握、从整体上合理分析,我们需要使用面向对象的思路来分析整个系统.但是,具体到微观操作,仍然需要面向过程的思原创 2021-02-06 23:28:54 · 113 阅读 · 0 评论 -
Java基础:数组的应用
数组的应用了解并使用Araays类java给我们提供了,数组的工具类java.util.Arrays由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本的操作。查看JDK帮助文档Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而"不用"使用对象来调用(注意:是"不用”而不是“不能")具有一下常用功能:给数组赋值:通过fil方法。对数组排序:通过so原创 2021-02-06 17:39:44 · 167 阅读 · 1 评论 -
Java基础:数组的学习2
数组详解(二)二维数组声明:int a[][];或者int [][]a; 但是对数组进行初始化之前是不能使用的,所以初始化为如下样子即可int a[][]= new int[2][3];另外,如果知道数组元素,就可以不调用new,而直接使用简写形式对多维数组进行初始化。例如int[][] a={ {1,2}, {2,3}, {1,2,3}, {1}};一旦数组初始化,就可以用两个中括号访问各个元素,例如System.out.print(a[i原创 2021-02-05 23:36:18 · 129 阅读 · 0 评论 -
Java基础:数组的学习1
数组详解(一)数组的定义:数组是相同类型数据的有序集合数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标(从0开始)来访问它们数组声明创建:首先必须声明数组变量,才能在程序中使用数组,其声明数组变量的语法:dataType[] arrayRefVar; //首选方法或者dataType arrayRefVar[]; //效果相同,为了让c++使用者适应Java语言使用new操作符来创建数组,语法如下:da原创 2021-02-05 18:26:55 · 120 阅读 · 0 评论 -
Java基础:递归的简单解释
用一个最基础的例子解释递归先了解递归的作用:利用递归可以用简单的程序来解决一些复杂的问题。它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。知道递归包括的两个部分:递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。递归体:什么时候需要调用自身方法。============下面根据这个例题去理解递归的使用:求4的阶乘packa原创 2021-02-05 13:18:10 · 150 阅读 · 0 评论 -
Java基础:方法详解
java方法详解方法是解决一类问题的步骤的有序组合方法包含于类或对象中方法在程序中被创建,在其他地方被引用设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子性,就是一个方法只完成1个功能,这样利于我们后期的扩展注意,不论如何都是从main方法开始执行,所以尽量把一些公共的模块提取出,以保证main方法的简洁方法的定义方法包含一个方法头和一个方法体修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的原创 2021-02-04 23:51:18 · 148 阅读 · 0 评论 -
Java基础:流程控制2
第三节,switch结构多选择结构还有一个实现方式就是switch case 语句switch case 语句判断一个变量与一系列值中某个值是否相等,每一个值称为一个分支switch语句中的变量类型可以是:byte,short,int或者charpackage first;public class New {public static void main(String[] arg) { char grade = 'C'; // switch匹配一个具体的值 swi原创 2021-02-04 19:25:41 · 95 阅读 · 0 评论 -
Java基础:流程控制1
第一节,用户交互Scanner基本语法Scanner s = new Scanner(System.in);通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLIne()判断是否还有输入的数据首先用Next() (不能读取空格)package first;import java.util.Scanner;public class New {public static void main(String原创 2021-02-04 19:12:22 · 90 阅读 · 0 评论 -
Java基础:基础语法学习2
第五节,变量,常量,作用域变量数据类型 变量名 = 值;Java是一种强类型语言,每个变量都必须声明其类型Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域注意:每个变量都有类型,类型可以是基本类型,也可以是引用类型变量名必须是合法的标识符变量声明是一条完整的语句,因此每个声明都必须以分号结束1. 类变量;static2. 实例变量;从属于对象,如果不自行初始化,则用类型的默认值默认值:0 0.0布尔值:false除了基本类型,其余的默原创 2021-02-04 19:10:37 · 96 阅读 · 0 评论 -
Java基础:基础语法学习1
第一节,注释注释不被执行,相当于代码的介绍说明单行注释//注释多行注释 /*注释*/文档注释/** * @author 蒸汽黑子 */第二节,标识符和关键字关键字的具体用法会依次学习java的所有组成成分都需要关键字。类名,变量名以及方法名都被称为标识符标识符注意事项:如图第三节,数据类型强类型语言要求变量的使用要严格符合规定,所有变量都必须定义后才能使用弱类型语言略Java的数据类型分为两大类基本类型(primitive type)原创 2021-02-04 19:04:29 · 119 阅读 · 1 评论