JavaSE--初识&&开发基础
JDK、JRE、JVM
JDK:Java Development Kit
- java开发环境
JRE:Java Runtime Environment
- java运行时环境
JVM:JAVA Virtual Machine
- java虚拟机
JDK开发环境搭建
JDK下载与安装&卸载
JDK8为主流
卸载
- 环境变量清理、文件夹删除。
下载
JDK8主流 下载需要同意许可协议 下载对应版本
安装时记录安装路径用来配置环境变量
配置环境变量
- 运行sysdm.cpl命令在高级系统设置页面的环境变量进行配置
- 在系统变量中新增:变量名=》JAVA_HOME 、路径=》安装时的jdk路径
- 在Path中新增jdk位置值:%JAVA_HOME%\bin
- 在Path中新增jre位置值:%JAVA_HOME%\jre(有的版本没有)
- 运行java -version测试是否安装成功
目录讲解
- bin:可执行程序
- include:包含c的头文件因为java是c衍生的
- jre:运行java的一些文件
- lib:存放库文件
- src.zip:存放的java的资源文件类文件
Helloworld初试
新建文件夹 如HelloWorld
新建java类的文件如Hello.java
- 后缀名要改 确保后缀名没有隐藏
写入代码
public class Hello{
public static void main(String[] args){
System.out.print("Hello,World!");
}
}
- 需要注意的是文件名和和类名要相同也就是 public class Hello此处写的为Hello,文件名就应该是Hello.java,大小写也要相同。
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GEVpZEHd-1659759344259)(assets/image-20220610144252-gdao1pu.png)]
编译代码
cmd运行 javac Hello.java
- cmd工作环境要在该文件目录下
运行代码
cmd 运行 java Hello
- 注意此处只有Hello没有后缀名
Java运行机制
编译型:相当于把一本英语书直接翻译成汉语,然后读,读取的时候效率高,如果后续内容进行更改了要重新翻译,浪费时间。如C/C++
解释型:相当于一边读一边翻译,运行效率偏低,但是可以保证一直是最新的。Java接近于解释型
Java是两者都有个
先编译为字节码文件,然后放入类装载器中,进行字节码校验(如果这里没有检测出问题),进入解释器,按照解释型的方式,进行输出执行。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QOwqGpPf-1659759344260)(assets/image-20220610145934-6zxrtw6.png)]
JDEA安装
开发基础
注释符
//单行注释
/*
多行注释
*/
/**
* 文档注释
* @Author:ks192
*/
关键字&标识
常用关键字
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AdQxkvq1-1659759344260)(assets/image-20220610160057-vboqb93.png)]
标识
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uMuPurwD-1659759344261)(assets/image-20220610160859-gx6mbwq.png)]
注意
- 所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线(_)开始
- 首字符之后可以是字母(A-Z或者-z),美元符($)、下划线(_)或数字的任何字符组合
- 不能使用关键字作为变量名或方法名。
- 标识符是大小写敏感的
- 合法标识符举例:age、$salary、_value、_1_value
- 非法标识符举例:123abc、-salary、#abc
- 甚至可以使用汉子作为变量名
数据类型
Java属于强类型语言。
强类型语言:要求变量的使用严格符合规定,所有变量必须先定义
后才能使用,定义后不能转换。弱类型语言:与强类型语言要求的部分相反
Java数据类型分为两种
基本类型(primitive type)
数值类型
整数类型:
- byte占1个字节范围:-128-127
- short占两个字节范围:-32768-32767
- int占4个字节范围:-2147483648-2147483647
- long占8个字节范围:-9223372036854775808-9223372036854775807
浮点类型
- float占4个字节
- double占8个字节
字符类型:char占2个字节
boolean类型:占1位其值只有true和false两个
引用类型(reference type)
- 类
- 接口
- 数组
进制转换
public class Demo03 {
public static void main(String[] args){
//整数拓展: 进制 二进制0b 十进制 八进制0 十六进制 0x
int i = 10;
int i1 = 0b10;
int i2 = 010;
int i3 = 0x10;
System.out.println(i);
System.out.println(i1);
System.out.println(i2);
System.out.println(i3);
}
}
扩展
public class Demo03 {
public static void main(String[] args){
//============================
//浮点扩展?银行业务怎么表示?钱
//BigDecimal 数学工具类 不能用浮点
//==============================
//float 有限 离散 舍入误差 大约 接近 但不等于
//double
//最好完全使用浮点数进行比较
float f = 0.1f;
double d = 1.0/10;
double c = f;
System.out.println(f==d);//输出的是False 也就是float类型转换为double的过程中会发生变化
System.out.println(f);
System.out.println(d);
System.out.println(c);
float d1 = 2131231212321332f;
float d2 = d1+1;
System.out.println(d1==d2);//超出float、double也一样定义的范围采取四舍五入记录
System.out.println(d1);
System.out.println(d2);
//==============================
//字符拓展?
//==============================
char c1 = 'a';
char c2 = '中';
System.out.println(c1);
System.out.println((int)c1);//强制转换
System.out.println(c2);
System.out.println((int)c2);//强制转换
//所有字符本质还是数字
//编码 Unicode编码表:97-a 2字节 65536 Excel文件早期最多65536行
char c3 = '\u0061';
System.out.println(c3);//a
//制表符 \t制表符 \n换行
System.out.println("hello\tworld");
}
}
类型转换
不能转换布尔类型,只能从高到低转换(如果从低到高强制转换可能会出现内存溢出或者精度的情况)。不能把类型转换为不相干的类型。
public class Demo05 {
public static void main(String[] args){
int i = 200;
byte b =(byte) i;
System.out.println(i);//200
System.out.println(b);//-56
float num1 = 323.123f;
int num2 = (int)num1;
System.out.println(num1);//323.123
System.out.println(num2);//323
}
}
JDK7以后定义int类型的数据可以用下划线(_)进行分割。
变量
变量作用域
- 类变量
- 实例变量
- 局部变量
示例如下:
public class Demo05 {
//类变量 static
static double salary = 25000;
//实例变量
//属性变量:从属于该对象;如果不进行初始化,这个变量的值为默认值
//除了基本类型,其余的默认都是null;布尔类型是false
String name;
int age;
//main方法
public static void main(String[] args) {
//局部变量只存在于这个方法中
int i = 10;//局部变量 如果不初始化 则不会被输出
System.out.println(i);
//变量类型 变量名字 = new Demo5()
Demo05 demo05 = new Demo05();
System.out.println(demo05.name);
System.out.println(demo05.age);
}
//add方法
public void add(){
System.out.println(salary);
}
}
命名规范
◆所有变量、方法、类名:见名知意
◆类成员变量:首字母小写和驼峰原则:monthSalary除了第一个单词以外,后面的单词首字母大写lastname 如:lastName
◆局部变量:首字母小少小写和驼峰原则
◆常量:大写字母和下划线:MAX VALUE
◆类名:首字母大写和驼峰原则:Man,GoodMan
◆方法名:首字母小写和驼峰原则:run0,runRun(O
常量
用final定义
运算符
- 算术运算符:+,-,* ,/,%,+,
- 赋值运算符=
- 关系运算符:>,<,>=,<=,=,!= ,instanceof
- 逻辑运算符:&&,‖,! 与、或、非。
- 位运算符:&,|,^,~,>>,<<,>>>(了解!!!)
- 条件运算符 ?:
- 扩展赋值运算符:+=,-=,*=,/=。
二元运算符&&关系运算符&&模运算符
示例
public class Demo01 {
public static void main(String[] args){
int a = 10;
int b = 20;
//二元运算符
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/(double)b);
//关系运算符
System.out.println(a>b);
System.out.println(a<b);
System.out.println(a=b);
System.out.println(a!=b);
//模运算
System.out.println(b%a);表示b除以a取余数
}
}
如果运算过程中类型不同,那么会按照包含范围最大的类型进行转换。
一元运算符
++,–,
public class Demo02 {
public static void main(String[] args){
int a = 1;
int b = a++; //a++=>a = a+1 先赋值后自增
int c = ++a; //++a=>a = a+1 先自增后赋值
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
}
逻辑运算符
&&
- 同真才为true,否则就是false
||
- 有一个true,结果就是true,全为false才为false
!
- 就是取反
public class Demo03 {
public static void main(String[] args){
boolean a = true;
boolean b = false;
System.out.println(a&&b); //false
System.out.println(a||b); //true
System.out.println(!(a&&b)); //true
}
}
位运算符
<<:左移,每左移一位就相当于乘以2,和*乘号的区别在于运行效率较高
>>:右移,与左移相反
字符串连接符
+在使用字符串连接符时,如果在加号左边或者右边有一个字符串类型,则结果就是字符串类型,但是,要遵循运算顺序
如下所示(“+”在不同的位置结果是不同的):
public class Demo03 {
public static void main(String[] args){
int num1 = 2;
int num2 = 3;
System.out.println(""+num1+num2); //23
System.out.println(num1+num2+""); //5
}
}
三元运算符
x ? y : z 如果x为真结果为y,如果x为假,结果为z。
JavaSE--初识&&开发基础的更多相关文章
- JavaEE开发基础
1 JavaEE简介 Java平台有三个版本,分别是JavaSE(Java Platform, Standard Edition),JavaEE(Java Platform, Enterprise E ...
- JSP网站开发基础总结《一》
经过JAVASE的学习相信大家对JAVA已经不再陌生,那么JAVA都可以干什么呢?做算法.应用程序.网站开发都可以,从今天开始为大家奉上JAVAEE之JSP动态网站开发基础总结. 既然是动态网站开发, ...
- Python运维开发基础03-语法基础 【转】
上节作业回顾(讲解+温习60分钟) #!/usr/bin/env python3 # -*- coding:utf-8 -*- # author:Mr.chen #只用变量和字符串+循环实现“用户登陆 ...
- Python运维开发基础01-语法基础【转】
开篇导语 整个Python运维开发教学采用的是最新的3.5.2版,当遇到2.x和3.x版本的不同点时,会采取演示的方式,让同学们了解. 教学预计分为四大部分,Python开发基础,Python开发进阶 ...
- Python运维开发基础01-语法基础
标签(空格分隔): Mr.chen之Python3.0执教笔记(QQ:215379068) --仅供北大青鸟内部学习交流使用 开发不是看出来的,开发一定是练出来的: 想学好开发,没有捷径可走,只有不断 ...
- 20155202 实验四 Android开发基础
20155202 实验四 Android开发基础 实验内容 1.基于Android Studio开发简单的Android应用并部署测试; 2.了解Android.组件.布局管理器的使用: 3.掌握An ...
- 2016-2017-2 20155302 实验四 Android 开发基础
2016-2017-2 20155302 实验四 Android 开发基础 实验内容 1.下载和安装Android Studio 2.学会使用Android Studio进行简单的Android开发 ...
- 第五模块:WEB开发基础 第2章·JavaScript基础
01-JavaScript的历史发展过程 02-js的引入方式和输出 03-命名规范和变量的声明定义 04-五种基本数据类型 05-运算符 06-字符串处理 07-数据类型转换 08-流程控制语句if ...
- [转]JavaEE开发基础
JavaEE开发基础 1 JavaEE简介 Java平台有三个版本,分别是JavaSE(Java Platform, Standard Edition),JavaEE(Java Platform, E ...
- .NET基础拾遗(5)多线程开发基础
Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理基础 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 (6)ADO.NET与数据库开 ...
随机推荐
- 【技术积累】MySQL优化及进阶
MySql优化及进阶 一.MySQL体系结构 连接层:是一些客户端和链接服务,包含本地sock 通信和大多数基于客户端/服务端工具实现的类似于 TCP/IP的通信 服务层:大多数的核心服务功能,如SQ ...
- 词根 ten 展开 持有 /tin/tent/tain “to hold”
词根 ten 展开 持有 /tin/tent/tain "to hold" 记忆方式:en是拿出.忘了从哪里看的了.t是动作过去. 如果是 过去的时候已经拿出来,那就是 展开 延展 ...
- setting.json 20210825 更新
vue代码格式化思路 { "pasteImage.path": "${currentFileNameWithoutExt}_Images/", "up ...
- Java的Class类,注解与反射
Class对象: 我们每创建一个类,经过build都会生成对应的.class文件 该类无法只能由虚拟机创建对象,其构造函数为private 当我们创建某个类的对象,ClassLoader(一个类)就会 ...
- Android WifiDisplay分析二:Wifi display连接过程
简介 这一章中我们来看Wifi Display连接过程的建立,包含P2P的部分和RTSP的部分,首先来大致看一下Wifi Display规范相关的东西. HIDC: Human Interface D ...
- Libcurl & Log4cplus 移植和使用 以及 Jsoncpp 简单使用
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明 本文作为本人csdn blog的主站的备份.(Bl ...
- 数字政府!3DCAT实时云渲染助推上海湾区数字孪生平台
数字孪生,是一种利用物理模型.传感器数据.运行历史等信息,在虚拟空间中构建实体对象或系统的精确映射,从而实现对其全生命周期的仿真.优化和管理的技术.数字孪生可以应用于各个领域,如工业制造.智慧城市.医 ...
- (1)Python基础的一些教学资料和视频
Python相关的一些书籍 链接: https://pan.baidu.com/s/1uVT_xQRShxsw2gRhjJhikA 密码: 5fgi Python的相关进阶课程 链接: https:/ ...
- linux介绍、安装、shell
1-Linux发展介绍 零 什么是Linux Linux:和我们常见的Windows一样,都是操作系统,但不同的是: Windows: 收费,不开源,主要用于日常办公.游戏.娱乐多一些. Linux: ...
- OkHttp请求耗时统计
目录介绍 01.先提问一个问题 02.EventListener回调原理 03.请求开始结束监听 04.dns解析开始结束监听 05.连接开始结束监听 06.TLS连接开始结束监听 07.连接绑定和释 ...