Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
什么是线程不安全 我对线程安全的理解就是多个线程同时操作一个共享变量时会产生意料之外的情况,这种情况就是线程不安全。注意:只有写操作才可能出现线程不安全,对共享变量只进行读操作线程是绝对安全的。 具体
为什么要使用线程池 创建/销毁线程需要消耗系统资源,线程池可以复用已创建的线程。 控制并发的数量。并发数量过多,可能会导致资源消耗过多,从而造成服务器崩溃。(主要原因) 可以对线程做统一管理。 JUC
为什么需要分布式锁 引入经典的秒杀情景,100件商品供客户抢。如果是单机版的话,我们使用synchronized 或者 lock 都可以实现线程安全。但是如果多个服务器的话,synchronized
代码如下:/*  练习把一个整数逆序输出  分别把个位,十位,百位,千位等各位的数字取出来*/import java.util.Scanner;class Demo18 { public static void main(String[] args)  { Scanner sc=new Scanner(System.in); System.out.println("请输入:"); int n...
代码如下:/*  从键盘上输入一个十进制数,输出它的二进制数*/import java.util.Scanner;class Demo17{ public static void main(String[] args)  { Scanner sc=new Scanner(System.in); System.out.println("请输入十进制正整数:"); int num=sc.next...
代码如下:/*  练习限制用户登陆的次数*/import java.util.Scanner;class Demo16 { public static void main(String[] args)  { Scanner sc=new Scanner(System.in); String name=""; String pwd=""; for(int i=1;i<=5;i++){ ...
代码如下:/*  多分支练习石头剪刀布  随机生成一个0/1/2的数字分别代表石头/剪刀/布  提示用户输入0/1/2,判断输赢*/import java.util.Scanner;class Demo14 { public static void main(String[] args)  { //随机生成 int computer=(int)(Math.random()*3); //提示用...
代码如下:/*  多分支练习彩票游戏,随机生成两个一位数的随机数,提示用户输入猜测的数字  如果完全匹配奖金10000,只匹配数字没有匹配顺序奖金3000,只匹配一个数字奖金1000  例:若生成的随机数为18,如果用户输入18奖金10000;如果用户输入81奖金3000;如果用户输入16奖金1000*/import java.util.Scanner;class Demo13{ public s...
代码如下:/*  练习简易计算器*/import java.util.Scanner;class Demo12 { public static void main(String[] args)  { Scanner sc=new Scanner(System.in); System.out.println("请输入第一个数字:"); int a=sc.nextInt(); System.o...
代码如下://练习使用枚举显示交通灯颜色class Demo11 { public static void main(String[] args)  { TrafficLight light=TrafficLight.Yellow; System.out.println(light); switch(light){  case Red:System.out.println("红灯,停")...
代码如下:/*  输入一个年和月,输出该月对应的天数*/import java.util.Scanner;class Demo10 { public static void main(String[] args)  { Scanner sc=new Scanner(System.in); System.out.println("请输入年和月"); int year=sc.nextInt();...
代码如下:import java.util.Scanner;/* * 练习打印万年历 */public class Demo36 { public static void main(String[] args) { //从键盘上接收一个年月 Scanner sc=new Scanner(System.in); System.out.println("请输入年和月:"); int year=...
代码如下:import java.util.Scanner;class Demo9 { public static void main(String[] args)  { Scanner sc=new Scanner(System.in); System.out.println("请按hh mm ss的格式输入一个时间"); int hour=sc.nextInt(); int minut...
代码如下:import java.util.Scanner;class Demo8 { public static void main(String[] args)  { Scanner sc=new Scanner(System.in); System.out.println("请输入一个成绩:"); String score22=sc.next(); char score=score2...
代码如下:/*  从键盘输入一个成绩,判断成绩对应的等级*/import java.util.Scanner;class Demo8 { public static void main(String[] args)  { Scanner sc=new Scanner(System.in); System.out.println("请输入一个成绩:"); int score=sc.nextIn...
代码如下:/*  验证三角形的有效性,提示用户输入三个边长,判断是否构成三角形*/import java.util.Scanner;class Demo6 { public static void main(String[] args)  { Scanner sc=new Scanner(System.in); System.out.println("请输入第一条边长:"); int a=s...
代码如下:/*练习计算当前时间  使用System.currentTimeMillis()计算当前时间  System.currentTimeMillis()可以返回当前时间与协调世界时间1970年1月1日午夜之间的时间差*/class Demo4 { public static void main(String[] args)  { //把1970年1月1日午夜到现在的毫秒数保存到一个变量中 ...
如图所示代码如下:/*  整钱兑零钱,如果有一个小数2.94  显示包含多少个1元的,5毛的,2毛的,1毛的,5分的,2分的和1分的*/import java.util.Scanner;class Demo3 { public static void main(String[] args)  { Scanner sc=new Scanner(System.in); System.out.pri...
import java.util.Scanner;class Demo1{ public static void main(String[] args)  { Scanner sc=new Scanner(System.in); System.out.println("请输入名字:"); String name=sc.next(); System.out.println("请输入工作小时数...
一、环境准备  windows10  jdk-10二、下载并安装jdk三、配置环境变量1、右键桌面上“我的电脑”>>“属性”,在弹出的页面上点击“高级系统设置”。2、在弹出的“系统属性”窗口中“高级”标签页下点击“环境变量”按钮。3、在弹出的“环境变量”窗口中,点击下方的“新建”按钮,在弹出的“新建系统变量”窗口中,新建一个名为“JAVA_HOME”的环境变量,变量值为Java的安装路...
理论篇一、java应用概述1.1 java语言的三种技术架构    J2EE:企业版,为企业开发环境下的应用程序提供的一套解决方案    J2SE:标准版,为开发普通桌面和商务应用程序提供的解决方案    J2ME:小型版,为开发电子消费产品和嵌入式设备提供的解决方案 java5.0版本后,更名为JAVAEE、JAVASE、JAVAME1.2 jdk(java de
public class array_length { public static void main(String[] args) { String[][] data=new String[2][5]; System.out.println("第一维数组长度为:"+data.length); System.out.println("第二维数组长度为:"+data[0].length); }}输出结果:第一维数组长度为:2..
import java.util.ArrayList;import java.util.Collections;public class array_reverse { public static void main(String[] args) { ArrayList<String> arrayList=new ArrayList<String>(); arrayList.add("A"); arrayList.add.