Java基础入门笔记
JDK的组成,跨平台原理
2022年1月22日
14:45
JDK的组成:JDK即Java开发工具包包括有1,JVM(核心)2,核心类库3,JRE,还包括Java和javac等Java开发工具(1,2合称JDK的Java的运行环境)。
Java的跨平台原理:Java的跨平台指的是“一次编译,处处可用“用Java编译后得到的class文件可在各平台使用,这是因为sun公司为各个平台都写好了各平台的虚拟机,在各个不同平台运行class文件只需要安装不同的JVM虚拟机
JVM:(Java Virtual Machine)Java虚拟机,真正运行Java的地方。
核心类库:Java自己写好的程序,给程序员自己使用的程序调用的,例如:第一个程序中的System.out.println。
JRE:(Java Runtime Environment)Java的运行环境”即JVM与核心类库“。
Java程序运行流程:1用Java编译程序得到class文件,2在JDK中找到Java工具把class文件送到虚拟机内运行,3运行过程中会用到Java自己的程序则会在核心类库中。
本课知识点,
JDK组成:JVM,核心类库,JRE,开发工具。
跨平台含义,Java如何实现跨平台:含义,一次编译处处可用,如何实现,安装不同版本虚拟机。
Path环境变量和Java_HOME的环境变量
2022年1月24日
22:05
如何在命令窗口中启动程序:1,把目录调整到应用程序所在的目录 2,在path中配置
path环境变量:用于记住程序路径,方便命令行窗口任意目录启动程序。
如何配置Path环境变量,
此电脑>属性>高级系统设置>环境变量
(注,在配置之前打开的命令窗口不会更新配置,
在用户配置中的配置仅在该用户中有效,在系统配置中则全部有效
新版本jdk会自动配置Pafth,较老版本不会
目前jdk都没有配置JAVA_HOME的环境变量
JAVA_HOEM:告诉操作系统jdk安装在哪里(会用其他技术用环境变量找jdk)
(注配置过JAVA_HOME后Patch时用%JAVA_HOME%bin可以避免更新jdk后还需要重新配置
Path环境配置变量是什么:用于记住程序路径,方便命令行窗口任意目录启动程序。
JDK安装时需要注意什么:新版本jdk会自动配置Pafth,较老版本不会
注释与字面量
2022年1月29日
17:31
注释:写在程序代码中对代码进行解释说明的文字,方便自己或别人理解程序。
字面量:告诉程序员数据在程序中的书写格式。
注释类别:
1单行注释:“//”注释内容只能单行,
2多行注释:“/*
注释内容1
注释内容2
/*”进行多行注释。
3文档注释:“/**
注释 内容
注释内容
*/”注释内容可以用提取程序提取注释文档。
数据类型
常用数据 |
生活中的写法 |
程序中的写法 |
说明 |
整数 |
666,-88 |
666,-88 |
写法一致 |
小数 |
3.14,-5.21 |
3.14,-5.21 |
写法一致 |
字符 |
A,0,我 |
‘A’‘0’‘我’ |
要加双引号,且字符有且只有一个 |
字符串 |
我爱她 |
“我爱她” |
加双引号,内容有可无 |
布尔值 |
真,假 |
true,false |
只有真假两个值,true:真,false:假 |
空值 |
值:null |
一个特殊值 |
多学一招
CTRL+/ 单行注释(对当前行进行注释)
CTRL+SHIFT+// (对选中的内容进行注释)
注释编译后并不会保留留在class文件中,把class文件拖入idea中可以进行反编译。
数据类型的分类
2022年1月30日
22:40
引用数据类型(除基本数据源外,如String等)
基本数据类型:四大类八种,
数据类型 |
关键字 |
取值范围 |
占用字节数 |
整数 |
Byte |
-128~127 |
1 |
short |
-32768~32767 |
2 |
|
Int(默认) |
-2147483648~2147483647(十位数) |
4 |
|
long |
-9223372036834775808~9223372036834775807 |
8 |
|
浮点数 |
float |
1.401298e-45~3.402823e+38 |
4 |
double |
4.900000000e-324~1.797693e+308 |
8 |
|
字符 |
char |
0~65534 |
2 |
布尔值 |
boolean |
trae,false |
1 |
long使用时因为整数字面量默认为int型所以在使用时要在数据后加L或l,同理flont小数默认为double类型数据,所以在使用时应当加F或f
char只能带入一个字符
浮点型 不精准 不建议用于比较
float小数点后七位,单精度
double 双精度 float的两倍
不用于专业比较 用bigdeclmal去比较运算
字符型 0~64446
ASCII美国标准字符编码256个包括英文,数字,特殊字符,控制符。后发展为GB2312 GBK GB18030
ISO8859-1(aktin1)西欧字符集
BIG5台湾繁体中文
汉字编码使用国标Z312现在使用JB18080
国际统一编码unicode这又可分为UTF-8(主流),UTF-18,UTF-32
字母编码占一个字节汉字编码占两个字节
Java中使用Unicode编码字符串不是基本数据类型
基本字符编码有1英文2符号3中文4转义符5编码符(unicode)
转义符 |
意义 |
编码 |
\b |
退格 |
\u0008 |
\n |
换行 |
\u000a |
\r |
回车 |
\u000b |
\t |
制表符(tab) |
\u0009 |
\" |
双引号 |
\u0022 |
\\ |
反斜杠 |
\u00sc |
boolean布尔值(true真和false假)
占一个字节或四个字节(一般情况下四个字节若定义布尔数组为四个字节
不能用0或非零代替与c语言不同//
在使用else if语句时最后输出语句发现问题如下
if(b1==true){
System.out.println("b1为ture");
}
else if(b2==true){
System.out.println("b2为true");
}
System.out.println("b1 b2都不为ture");
当程序为这样时会输出两条语句即b1b2都不为true必输出与预想效果有出入
运算符
2022年3月9日
11:11
基本运算符
“+”加“-”减“*”乘“/”除“%”模除“++”自增“--”自减
+,-,*,/,与数学加减乘除一致,但计算机中的运算结果会根据表达式中表达范围最大的数据类型格式输出。
即当有两个操作数有一个为long结果数据类型为long,但是就算就算操作时为short或byte时结果仍然为ine
浮点数1两个操作数时有一个为doule则结果为doule
其中''“+”除了做加法运算外还可以做连接符 ,操作数一个为字符型String系统会自动将另一个转化为字符再连接是string而不是char,可再输出前加一个“”自动转为字符串
例:
+连接符在计算机中会转化为ascll码,
public class shujuziZifulianjie {
public static void main(String[]args) {
String a="中";
int b=3;
char c='h';
char d='i';
System.out.println(a+b);//输出 中3
System.out.println(c+d);//输出 209
System.out.println(""+c+d);//输出 hi
}
}
“++”“--”可以放在变量前也可以放在变量后,只能操作变量,不能操作字面量。若++,--不单独运算时,在++,--在前则先自增/自减,在拿变量运算,在后则先运算在自增/自减。
例:public static void main(String[iargs]){
int k=3;//k的数据变化为3 4 5 4
Int p=5;//p的数据变化为5 4 3 4
int s=k++ + ++k - --p + p-- - k-- + ++p +2;//而s=3+5-4+4-5+4+2=
System.out.print(s);
}
赋值运算符
“=”赋值“+=”加后赋值“减后赋值”“*=”乘后赋值“/=”除后赋值“%=”余后赋值
+=,例a+=b等价于a=a+b将ab的值相加赋值于a且为a的数据类型
其他同理,赋值运算隐含了强制类型转换。
关系运算符
“==”判断是否相等“!=”是否不等“>”是否大于“>=”是否大于或等于“<”是否小于“<=”是否小于等于,这些条件符合返回true不符合返回false,即真假布尔值
逻辑运算符
& |
逻辑与 |
必须都为true(真)结果为true,有一个false结果为false |
| |
逻辑或 |
必须都为false(假)结果为false,有一个true结果为true |
! |
逻辑非 |
相互转换!true=false,!false=true |
^ |
逻辑异或 |
如果两个都为false或都是true则结果为false,若两不相同则为true |
&& |
短路与 |
判断结果与&一样,过程不同,如果左边为false右边不执行。 |
|| |
短路或 |
判断结果与|一致,过程不同,如果左边为true右边不执行。 |
位移运算(用二进制计算)
~ |
取反 |
& |
按位与 |
| |
取值或 |
^ |
按位异或 |
<< |
左移运算符(左移1相当于*2 |
>> |
右移运算符,1相当于/2 |
使用范例
public class shujuWweiyi {
public static void main(String[]args) {
int a=5;
int b=2;
int c=a<<b;//相当于5*2*2输出20
System.out.println(c);
System.out.println(40>>3);//相当于40/2/2输出5
}
}
条件运算符
条件表达式 三元运算符?值1:值2;
使用范例:找出两个值的较大值
public class 类名{
public static void main(String[]args){//主函数main是必须的没有主函数会让程序无法运行且不报错
Double score=3;
String rs=score>4 ? True:false;
System.out.print(rs);
}
}
拓展:判断三个值大小
public class 类名 {
public static void main (String[])args{
Int i=10;
Int j=3;
Int k=2;
Int max=i>j ? i: j;
Int rsmax=max>k ? max:k;//如果只用一个变量还可以使用,int rsmax=i>j ? (i>k? i:k;):(j>k? j:k;);
System,out.print(rsmax);
}
}
//判断成绩是否及格
public class shujuTliaojian {
public static void main(String[]args) {
int a=71;
String type=a>60? "及格":"不及格";
System.out.println(type);
if(a>60) {
type="及格";
}
else {
type="不及格";
}
System.out.println(type);
}
}
条件表达式等效于if else但是if更有条理
关键字和标识符
2022年2月13日
20:23
关键字:Java保留的一些单词,作为特殊功能,如pubilc,class,byte,short….(这些都不能做类名或变量名称。)
标识符:由一些字符,符号,数字组成合的名称,可以用于给类方法,变量起名字的规范。
标识符的要求,由数字,字母,下划线(-)和美元符号($)组成。要求不能以数字开头,不能是关键字,区分大小写。
命名规范指导
变量名称:满足标识符规则,建议全英文,有意义,首字母小写,”驼峰形式“如int studyNumber=59
类名称:满足标识符规则,建议全英文,有意义,首字母大写,”驼峰形式“如Hwlloworld.java
关键字的特点
Java自己保留的不能用来取名字
标识符
取名字的规则由数字,字母,下划线(-)和美元符号($)组成。要求不能以数字开头,不能是关键字,区分大小写。
数据类型的转换
2022年2月3日
11:21
自动类型转换:范围小的变量可以直接赋值给类型范围大的变量。
Char
↓
Byte——short——int——long
↓ ↙ ↓
↘
↓ ↙ ↓
Float——double
一个有损两个无损不能反转如long转int不能自动
特例 整数类型int可转为byte/short/chuar只要不超过数据表达范围
强制类型转换:范围大变量赋值强制赋值给类型范围大的变量。
强转格式 (type)var//即(类型声明)数值
例
public static void main(String[]args) {
int a=(int)3.1415926;//先转为int型后小数点后丢失
float b=(float)a;//此时输出也为3.0
byte c=(byte)300;超出表达范围又因为byte为二进制只取前七位有一位为符号位
char d=(char)98;//数字强转符号与编码对应是输出b
System.out.print(a+" "+'\t'+b+'\t'+c+'\t'+d);\\注意当需要输出多值时可用+号连接但是其中要加入如String类型数据即字符段类型避免+起运算符效果
}
1一般的表达式的最终结果的数据类型由表达式内最高的数据类型决定。
2表达式中的:byte,short,chat是直接转为int的数据类型参与运算的。
3强制数据转换可能造成数据(丢失)溢出。
4浮点型数据进行强制转换数据类型,直接丢掉小数部分,保留整数部分返回。
为什么要进行类型转换
在不同类型发变量赋值给其他类型的变量。
键盘录入
2022年3月16日
14:04
键盘录入步骤
1导包
import java.util Scanner;
2抄写代码得到扫描的对象
Scanner sc=new Scanner(System.in)
3抄写代码等待用户输入数据
sc.nextlnt(),sc.next().
范例:
import java.util.Scanner;
//导包操作(并不需要自己写用工具导入更方便)
public class 类名{
public static void main(string[]args){
//得到一个键盘扫描对象
Scanner sc=new Scanner(System.in);
//调用sc对象的功能等待用户输入数据,这个代码会等待用户输入数据后继续执行后续程序。
System.out.print("请输入您的年龄");
int age=sc.nextimt();
System.out.println("你的年龄是:"+age);
System.out.println("请输入你的名称");
String name=sc.next();
Systme.out.println("欢迎"+name);
}
}
package jieduanyi;
import java.util.Scanner;
//import 引用包
public class jianpan {
public static void main(String[]args) {
try(Scanner sc=new Scanner(System.in)){//不加try会自动报错但不影响运行我也不知道为什么
//try()说明
System.out.println("请输入你的年龄");
String age=sc.next();
System.out.println("你的年龄是:"+age);
System.out.println("请输入你的名称");
String name=sc.next();
System.out.println("欢迎"+name);
}
}
}
Java基础入门笔记相关推荐
- Java基础入门笔记2
Java基础入门笔记2 一. 为什么把程序出错叫做"BUG"? 1. 原因是臭虫或者虫子,现在用来指代电脑系统或者程序中隐藏的一些漏洞或者一些问题,所以现在程序出问题就叫" ...
- Java基础入门笔记-数组链表
数组链表ArrayList ArrayList是JDK自带的基础工具类. java.util.ArrayList 也是一个容器(里面存放对象) 1.添加对象add: 2.删除对象remove: 3.遍 ...
- Java基础入门笔记-链表与容器
容器(Container):存储对象的东西. 容器是一个设计上的术语,不是一个语法概念. 比如数组,就是一个容器 数组容器 缺点: 1.容量固定,无法扩展.既不能射太大,也不能太小,很难确定. 2.插 ...
- Java基础入门笔记-随机数
Random类是JDK里自带的基本类. java.util.Random 使用Random可以生成随机数: Random rand=new Random(); int s=rand.nextInt(1 ...
- Java基础入门笔记-包装类
包装类 在Java里面,每一个基本类型都对应一个包装类型 long Long int Integer short Short byte Byte double Double float Float b ...
- Java基础入门笔记-静态方法
方法有两类: 1.该方法与类的关系不大.随便拷贝到别的类里面也仍然可以运行,没有语法错误: 2.该方法与类关系密切.如果拷贝到别的类里就失去意义,有语法错误: 一个严格的判断:该方法有没有访问this ...
- Java基础入门笔记-添加包
包:package 当一个项目中的类越来越多时,需要对其进行分包管理. 例如与Amazon和Tencent共同开发一个项目,那么就可以简历三个package com.amazon con.tencen ...
- Java基础入门笔记-多态
多态是设计上的一个术语.(polymorphism) 在Java里,多态是指以下语法现象: 重载OVerload:方法允许重名: 重写Override:允许子类重写父类方法: 泛型(模版):比如Arr ...
- Java基础入门笔记-单根继承
查看类的继承链 右键然后 Quick Type Hierarchy 如下图所示: 我们发现: 在java中如果一个类没有指定父类,则他默认父类就Object.(这里感觉和Qt有相同的东西,但又不同) ...
- Java基础入门笔记-构造方法的继承
代码如下所示: Child.java package my;public class Child extends Parent {public Child() {System.out.println( ...
最新文章
- PPT 下载 | 神策数据算法专家:推荐系统的实践与思考(上)
- 用DELPHI的RTTI实现对象的XML持久化 【转】
- Superhero Battle
- WildFly和Docker上的Java EE 7动手实验室
- CentOS下安装Tomcat并配置JRE
- fckeditor异常总结---1.NoClassDefFoundError: org/slf4j/LoggerFactory和NoClassDefFoundError: org/apache/log
- u-boot的补丁文件patch
- 变送器故障码与解决办法剖析汇总
- 美团网官网最新底部导航页面制作及CSS样式设计
- 简单的PHP测试页代码
- 【机器学习】决策树(Decision Tree)
- JAVA 枚举类型 根据代码得到中文
- git操作时Permission denied (publickey).
- 分析根文件系统中的目录结构
- [暑期第二阶段]8月19日~8月30日总结
- 值得收藏的Java 命名规范参考!
- 涂子沛《大数据》读书笔记
- Office LTSC 专业增强版 2021 显示“你的许可证并非XX”横幅解决方法(亲测有效,2016专业增强版同样适用,其他版本自行测试)
- 从后渗透分析应急响应的那些事儿(二)免杀初识篇
- Labview视觉一键尺寸测量仪,多产品,多尺寸,快速编辑