- 博客(103)
- 收藏
- 关注
原创 +=和=,自动类型转换,java基本数据类型,/和%,近似存储,字符串的拼接,i++,++i,四舍五入,default,局部变量
+=是复合运算符,其不会造成数据类型的自动提升,=是赋值运算符会造成数据自动类型的提升2.char不能转换为short,因为char取值范围为065535,而short取值范围是-3276832767.自动类型转化路线如下:java中的基本数据类型:4./...
2021-04-18 21:13:30
1175
原创 int整型转字符串,字符串转整型valueof,
int整型转字符串(可以直接+号拼接整型和字符串,也可用调用包装类Integer中的parseInt方法将字符串转成整型,且第二种parseInt用的比较多)//将数值型字符串转为int整型String n="123";int num=Integer.parseInt(n);System.out.println("num为:"+num);...
2021-03-31 18:37:20
364
原创 Character类中的静态方法,Character
Character包装类常用的静态方法代码如下:Character.isDigit(ch)判断ch单字符是否是数字。示例代码如下:Character.isletter(ch)判断ch单字符是否为字母将数值型数据装换为Character包装类对象ch2是一个character包装类型的数据然后利用isLetter判断其是否为包装类型,结果为trueCharacter.toLowerCase(ch)将ch单字符转换为小写字母。Character.toUpperCase(ch)将ch
2021-03-31 13:19:00
664
原创 字符串转int整型,parseInt底层实现,String类下的charAt()方法,字符串转换成指定类型的一个数值parseXXX(),XXXvalue,valueof,character常用类
包装类字符串转成int类型有三种方式:但是底层全部都调用了parseInt()方法。字符串转int整型代码如下:包装类字符串转整型的三种方式如下:parseInt内部底层实现:先比较要转的字符是否为空,然后判断进制radix是否在最小进制2到最大进制36之间,如果格式不正确返回异常(数据格式异常)NumberFormatExceptionString类下的charAt(index)方法charAt方法可以定位一个String类型变量的某个索引单元的元素,括号内的参数是String类型变量的索
2021-03-31 08:40:56
805
原创 包装类,integer对象,数值型字符串转int类型,装箱,gui查看编译后的class文件,valueof,Integer整数缓存池,比较两个包装类对象
包装类integerint引用类型对象创建输出两者的值相同,但是比较两个引用名不同,因为在堆中开辟的是不同地址的内存空间。直接打印输出integer引用类型的变量名输出的不是hashcode而是数据,说明integer整型底层重写了toString方法,直接打印输出了integer类型变量的数据。Integer重写了父类object的toString方法。输出不是hashcode是因为底层重写了toString方法。堆内存中比较的是地址值,因此num1==num2为false。第三行将字符串类型的值
2021-03-30 20:58:05
145
原创 冒泡排序,选择排序,插入排序
冒泡排序代码如下:package com.javasm.array;import java.util.Arrays;/** * @author: JAVASM * @classNAME: ArrayDemo07 * @description: * @date: 2021/3/29 22:10 * @version:0.1 * @since:1.8 */public class ArrayDemo07 { public static void main(String[] arg
2021-03-29 22:34:31
90
原创 删除数组元素,空指针问题
删除某些要求的数组元素,并将数组所有元素前移判断数组元素是否为空,应该避免String类型为null,造成空指针的问题,可加入一个判断来避免String[index]为空的情况,也可用下面的"a".equals(strings[index])来避免空指针问题,且更加简便。package com.javasm.array;import java.util.Arrays;/** * @author: JAVASM * @classNAME: ArrayDemo06 * @descriptio
2021-03-29 21:52:17
434
原创 Array类,Array.copyof截断和扩容创建新数组,数组引用,copyof其实也是new出了一个新的内存空间
Array类数组扩容和数组截断类似,区别只有第二个新数组长度这个参数的值不同,一个大于原长度(扩容),一个小于原长度(截断)。数组扩容数组类型[] 需要扩容的数组名=Array.copyof(需要扩容的数组名,新长度)数组截断:数组类型[] 需要扩容的数组名=Array.copyof(需要扩容的数组名,新长度)数组引用引用类型之间进行赋值,赋值的是内存地址值,只要改变数组元素,则调用两个数组引用进行输出,输出的内容都是同一个内存地址值的内存中存储的数据。内存示意图如下:如
2021-03-29 20:52:06
300
原创 复制数组元素,合并两个已知数组,String数组类型,增强for循环,native,Array.copyof()扩容数组创建新数组,合并数组,Array类的方法对数组进行截断或者扩容
将两个数组合并为一个数组,如果第二个数组的长度不够,创建新数组存储,如果第二个数组足够长,直接将第一个数组合并到第二个数组中。package com.javasm.array;import jdk.management.resource.internal.inst.SocketOutputStreamRMHooks;import java.util.Arrays;/** * @author: JAVASM * @classNAME: ArrayDemo05 * @description
2021-03-29 19:58:56
153
原创 动态录入学生个数,录入每个数组元素,并求出数组元素的最值以及平均值
数组赋初值不能随便给,min和max将要和每一个数组元素进行比较但是赋值需要注意:如果min=0,可能没有数组元素的值比0还小,如果max的值给200,那么可能没有数组元素的值比200大因此最好将最大值和最小值都赋值为数组第一个元素的值if结构可以用三元运算符来代替,且更加简便package com.javasm.array;import java.util.Scanner;/** * @author: JAVASM * @classNAME: ArrayDemo01 * @des.
2021-03-29 09:25:00
400
原创 操作数组元素,数组赋值,卫语句,==,Array.equals(数组1,数组2),equals,循环遍历输出数组元素,增强for遍历输出元素,switch,if..else..,比较数组元素是否一致
数组赋值:数组名[索引值]
2021-03-28 23:13:45
179
原创 数组,数组越界异常,增强for循环,数组索引,循环遍历数组,利用数组动态输入学生成绩,循环遍历输出数组内容
数组为引用类型,默认值为null数组必须初始化长度,且不能动态改变。数组通过length属性来获取数组长度,length是数组的长度数组定义与普通变量的定义是一致的数据类型 [] 数组名=new 数据类型[length];数组长度从0开始到length-1,索引只能到length-1如果数组下标取到length,则会发生数组越界;通过索引获取数组内容,即数组名[i],其中i属于0到length。输出数组名输出的是一个哈希码值,表示数组存储的首地址。如果操作数组的长度超过length.
2021-03-28 21:51:29
699
原创 打印三角形,字符串比较,Math.pow,水仙花数,菱形,while对折达到珠穆朗马蜂高度,输出乘数列,scanner,input,输入条件判断是否循环,do...while,顺序分支循环
打印三角形
2021-03-28 20:26:55
185
原创 if卫语句return退出方法,equals,switch,if,输入与while条件equals,,韩梅梅,猴子吃桃,幸运会员作业,顺序分支循环,for循环1到n被3整除的数个数以及和,if,for
作业1:for循环输出1到n之间所有能被3整除的整数个数,以及整除的整数和package com.javasm.exercise;import java.util.Scanner;/** * @author: JAVASM * @classNAME: Exercise * @description: * @date: 2021/3/27 12:37 * @version:0.1 * @since:1.8 */public class Exercise { //1.求1到n之
2021-03-27 17:33:34
301
原创 设置用户登陆,用户有3次机会输入账号密码,账号密码输入正确则打印输出99乘法表,流程控制语句关键字break和continue,结束方法体return,continue
流程控制语句关键字break,continue,return不算是流程控制关键字,return会结束方法体。break必然和if…else…结合起来使用,和条件判断结合起来使用。break必然离不开if…else…break结束当前循环,return直接结束当前方法return是结束方法,而break是结束switch或者当前循环体,然后顺序执行循环体后的代码。break和continue不能直接和if使用,必须要和循环结构for,while,do…while 配合使用,单return可以直接和i.
2021-03-27 09:40:13
429
原创 for循环打印99乘法表,for循环寻找100以内的偶数个数并求和,程序中空格\t
package com.javasm.for_;/** * @author: JAVASM * @classNAME: Demo01 * @description: * @date: 2021/3/26 22:38 * @version:0.1 * @since:1.8 */public class Demo01 { public static void main(String[] args) { //利用for循环: 1-100之间所有的偶数和 以及偶数的个数
2021-03-27 08:15:21
258
原创 循环结构,while,do...while,do...while具体实例
package com.javasm.while_;/** * @author: JAVASM * @classNAME: DoWhileDemo * @description: * @date: 2021/3/26 22:25 * @version:0.1 * @since:1.8 */public class DoWhileDemo { public static void main(String[] args) { //2014年苹果手机售出10万,每年增.
2021-03-27 08:15:05
214
原创 利用while循环结构,给定班级人数scanner动态录入成绩计算平均值
利用while循环结构,给定班级人数scanner动态录入成绩计算平均值package com.javasm.while_;import java.util.Scanner;/** * @author: JAVASM * @classNAME: WhileDemo02 * @description: * @date: 2021/3/26 22:06 * @version:0.1 * @since:1.8 */public class WhileDemo02 { public
2021-03-27 08:14:45
1777
原创 while下有scanner循环比对,直至输入满足条件终止循环,equals,韩梅梅do...while不断努力走向chengg
String空指针问题package com.javasm.while_;import javax.sound.midi.Soundbank;import java.util.Scanner;/** * @author: JAVASM * @classNAME: WhileDemo01 * @description: * @date: 2021/3/26 21:16 * @version:0.1 * @since:1.8 */public class WhileDemo01 {
2021-03-27 08:14:21
265
原创 switch条件选择结构,switch可以用于那些类型数据的判断,return和break
switch案例:package com.javasm.switch_;import java.util.Scanner;/** * @author: JAVASM * @classNAME: SeasonDemo * @description: * @date: 2021/3/26 20:40 * @version:0.1 * @since:1.8 */public class SeasonDemo { public static void main(String[].
2021-03-26 21:01:29
681
原创 自动赋值变量写好右半部分之后.var自动补全变量来承接得到的值。if...else if...else...
多个if并列的话,每个if语句大括号内的代码都有可能被执行,而利用if…else if…else…则可以只输出满足条件的第一个if下的内容,而不去执行其他if下的代码。如果用if并列的话,每一个if语句后的内容都有可能被输出:...
2021-03-26 20:24:51
227
原创 ==和equals区别,scanner类new出String类型变量与自定义Sting比较数据内容和地址值
package com.javasm.if_;import java.util.Scanner;/** * @author: JAVASM * @classNAME: ScannerDemo02 * @description: * @date: 2021/3/26 19:55 * @version:0.1 * @since:1.8 */public class ScannerDemo02 { public static void main(String[] args) {
2021-03-26 20:08:06
123
原创 scanner输入各种类型的数据,Scanner下next()和nextLine()的区别,nextInt()后读取空后跟nextLine()
Scanner里面读字符没有char,全部都是StringScanner输入的完整步骤如下:想输入什么类型的数据调用什么类型的功能就行。public class ScannerDemo { public static void main(String[] args) { //1.创建一个Scanner对象 Scanner scanner=new Scanner(System.in); //2.读取用户录入的数据 读取一个完整的学生信息
2021-03-26 19:54:35
565
原创 scanner实现用户登陆功能,Scanner从控制台获取用户输入的数据
String在package java.lang;包内而Scanner在package java.util;包内,需要调包利用Scanner完成用户登陆功能package com.javasm.if_;import java.util.Scanner;/** * @author: JAVASM * @classNAME: UserLogin * @description: * @date: 2021/3/26 15:48 * @version:0.1 * @since:1.8
2021-03-26 17:06:09
1093
原创 流程控制,卫语句,调试程序,ifelse
程序有三种结果:顺序,分支和循环。分支结构中分为3种1.条件判断if…else…package com.javasm.if_;/** * @author: JAVASM * @classNAME: IfDemon * @description: * @date: 2021/3/26 15:35 * @version:0.1 * @since:1.8 */public class IfDemon { public static void main(String[] arg
2021-03-26 16:23:52
101
原创 作业
package com.javasm.exercise;/** * @author: JAVASM * @classNAME: Exercise * @description: * @date: 2021/3/26 14:43 * @version:0.1 * @since:1.8 */public class Exercise { public static void main(String[] args) { //1.求一光年是多少千米 , 光在真空中传播速度
2021-03-26 15:28:36
100
原创 运算符,复制运算符,自增,自减,++,--,==,!=,+拼接字符串,三元运算符,比较运算符
5种运算符:1.赋值运算符,2.算术运算符,3.比较运算符,4.逻辑运算符,5.三元运算符2.算术运算符(自增和自减)自增:自减:在企业中禁止使用自增和自减,并不能够保证原子性,要么这三步全走了,要么这三步全都不走,再多线程高并发的时候,自增和自减很容易出现问题。特例自增之后依旧是100,即使程序顺序运行到输出num++之后的值,也依旧是100,原因是存在变量缓存机制,即使循环100次自增,结果输出num还是原来的值100+拼接字符串只要出现字符串,那么之后的所有数字都将看做是
2021-03-26 11:53:34
851
原创 变量内存的存储,数据类型转换,数据类型自动转换,强制类型转换,默认数据类型转换
JVM内存模型是为了解决高并发的问题,内存存储才是和内存有关联关系的。变量内存的存储变量名中存储的是地址值,不同变量名中存储的是相同数据,则该变量名内存储的是同一个地址值,该地址值所代表的内存单元存储的是就是他们共同存储的相同数据。String类型是一个字符串常量,其数据都放在常量池中保存数据类型转换==(低转高为自动类型转化,高转低需要进行强制类型转换)==byte—>short—>char—>int—>float—>double—>longboo
2021-03-26 09:58:31
217
原创 Java中的数据类型(四类八种),变量定义规则,新建类的规则,局部变量,全局变量,单字符类型的定义
Java中的数据类型分为2种:基本数据类型:(四类八种)引用数据类型:class interface 数组 枚举类 引用类型的默认值都为null
2021-03-26 08:37:18
884
原创 module下建立多个项目使其处于并列状态,项目分层
新建一个项目,file—>new—>project会提示是否新开一个窗口在正常的企业开发中是一个项目一个窗口,一个窗口包含多个项目的情况是多个项目在一个module下,新建项目然后选择Empty Project在1文件夹下new出module而不是project每次修改目录到day0X的位置修改,然后Java项目就可以并列了新建一个项目如下:注意:此处新建的是Java文件,而不是package会直接自动进入编辑类的界面然后可以完善文档注释里面的内容,然后就可以开始编写.
2021-03-25 22:32:14
261
原创 新建第一个IDEA项目,out,分层建包,修改IDEA字体,设置自动生成注释,更改注释颜色,整体修改编码格式,设置代码首字母补全,IDEA快捷键,代码智能补全
修改字体file—>setting—>Editor—>font —>consolas然后调整字体大小所有的代码都写在src目录下,选中src,选择new,选择新建一个Java文件整体修改编码格式:UTF-8/GBK,避免出现乱码。file—>setting—>搜索栏内输入encoding将所有选项都改为UTF-8设置代码首字母补全IDEA快捷键格式化代码:ctrl+alt+L向下复制代码:ctrl+D删除某行代码:ctrl+Y注释一行或者多行:C
2021-03-25 21:40:08
358
原创 IDEA新建project步骤,项目组成和解释
完成之后如图所示:新建完成后会有2个文件,一个是新建的文件夹其下包括.idea和src源码文件,另一个是external libraries,其中存储的是一个可能用到的jar包,如下图所示:而在电脑中存储的文件夹下也是有3个文件,如下图所示:...
2021-03-25 19:57:41
560
原创 Java语言注释的种类及用法,注解,文档注释,方法注释
注释的种类以及用法(注释起到一个解释说明的作用,且注解不参与编译)1,单行注释://2,多行注释:/* * / 两号之间标注注释的内容3,文档注释:一般是对类/接口/枚举类/方法的解释说明,一般放在类前是对当前类的解释说明。对类可能的注解信息如下所示:/***@author*@className:*@description*@data:2021-03-15 19:19:56*@version:0.1*@since:JDK1.8*/类注解如下图所示:对方法可能的注解信息如
2021-03-25 19:29:07
536
原创 JDK,JRE,JVM文件夹详解,以及三者之间的关系,main函数,配置环境变量,编译运行.java文件生成.class文件
JDK里面包括JRE,JRE里面又包括JVM安装成功后可以看到如下图所示:一般在C盘下可以找到Java文件夹,其下包括JDK和JRE两个文件夹上图中的jre文件没有也可以,jre就包括在了jdk中jdk的bin目录中都是exe的可执行文件,在dos窗口中输入Java命令时,其实就是到bin目录下找到相应的exe可执行文件并执行。jdk文件下的jre报下黑窗口中输入Java命令需要到磁盘的bin文件夹下找到相应的.exe可执行文件,如下图:lib文件夹下是很多的jar包,通过jar包下的很多
2021-03-25 17:59:33
725
原创 Java介绍,发展历史,Java语言的优势,Java开发什么软件,Java用到的术语JDK,JRE,JVM等,Java命令Java,javac,javados等
1.Java是什么(Java是一种高级语言)2,.Java发展历史以及JDK版本3.java能做什么,可用于开发什么软件。4.Java语言相对于其他语言的优势Java中用到的一些术语(JRE,JDK,JVM)提前检测本机中是否安装好JDK之类的东西可以通过在dos窗口中输入一些指令来完成安装JDK时,先点击运行.exe文件,安装完成后windows+R---->输入cmd------->可在dos窗口输入Java命令来判断是否安装成功,步骤如下图所示。安装成功一般在
2021-03-25 17:05:25
197
原创 SVN(subversion)及其使用
1.svn/gitsubversion是一个项目版本管理工具。git有一个托管平台在计算机上安装SVN客户端程序。拉取/下载/同步 本地与服务器之间的资源。SVN服务器路径:svn://ip地址//资源 用户名/密码1,在桌面点击鼠标右键选择checkout 检测出 绿色对钩:代表着本地的资源的版本与服务器里面的资源版本是一致的,客户端与服务器内相同文件夹下存储的内容是一致的,两者的内容是同步的。...
2021-03-24 17:12:57
536
原创 线程并发不安全示例,线程如何外部停止,一个对象代理多个线程,模拟延时Thread.sleep,线程内存,Thread中的getname方法,sleep放大线程问题的发生性,Thread().start
每个线程都有其自己的内存空间不安全的买票问题:排队买票时,并没有排队买,所有线程都将对象的数据拷贝到自己的内存中进行操作,可能使最后总的票数呈现负数,可能有10张票卖出了11张。package duoxiancheng;//不安全的买票//线程不安全,有负数public class UnsafeBuyTicket { public static void main(String[] args) { BuyTicket station=new BuyTicket();
2021-02-26 20:18:10
193
原创 线程同步机制,多个线程访问同一个对象,并发,排它锁
线程同步的安全性需要队列+锁来保证,当一个线程获取了对象的排它锁,将独占所有资源直到该线程结束,释放锁,其他进程才能进入。并发:多个线程访问同一个对象一个对象代理三个线程来买票的案例中,进程之间交替买票,可能某个时间段两个进程抢到了同一张票,因此需要sleep来让进程之间错开时间段取票,避免出现数据紊乱,这就是进程之间的并发抢票部分代码如下:什么是线程同步:排它锁,一个线程获取到对象的排它锁,独占资源,则其他线程都需要等待该线程使用后释放锁。...
2021-02-19 20:03:09
1032
原创 守护线程,用户线程
线程分为用户线程和守护线程用户线程即main函数,虚拟机必须确保用户线程执行完毕,即main函数执行完毕虚拟机不用等待守护线程完毕,如gc垃圾回收等待机制,后台记录日志,监控内存,代码演示如下:线程默认是false表示是用户线程,正常的线程都是用户线程。thread线程通过调用setDaemon来将此线程变为守护线程。虚拟机不用等待守护线程使用完毕,就可运行用户线程,最后结果是两个交替输出。package duoxiancheng;//测试守护线程//上帝守护你,创建2个线程publ.
2021-02-19 18:48:51
107
原创 线程的优先级,对象创建线程new的是继承Runnable接口的类
先设置优先级在启动,按照常理来说优先级高的先启动,但也不一定,看CPU心情先调度哪一个,某个线程优先级越高,则其被cpu运行的概率越大对象创建线程new的是继承Runnable接口的类package duoxiancheng;public class TestPriority { public static void main(String[] args) { //获取主线程的名字以及优先级,主线程默认优先级为5,不设置优先级的线程,优先级也默认设置为5 S
2021-02-19 14:09:08
163
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人