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--初识&&开发基础的更多相关文章

  1. JavaEE开发基础

    1 JavaEE简介 Java平台有三个版本,分别是JavaSE(Java Platform, Standard Edition),JavaEE(Java Platform, Enterprise E ...

  2. JSP网站开发基础总结《一》

    经过JAVASE的学习相信大家对JAVA已经不再陌生,那么JAVA都可以干什么呢?做算法.应用程序.网站开发都可以,从今天开始为大家奉上JAVAEE之JSP动态网站开发基础总结. 既然是动态网站开发, ...

  3. Python运维开发基础03-语法基础 【转】

    上节作业回顾(讲解+温习60分钟) #!/usr/bin/env python3 # -*- coding:utf-8 -*- # author:Mr.chen #只用变量和字符串+循环实现“用户登陆 ...

  4. Python运维开发基础01-语法基础【转】

    开篇导语 整个Python运维开发教学采用的是最新的3.5.2版,当遇到2.x和3.x版本的不同点时,会采取演示的方式,让同学们了解. 教学预计分为四大部分,Python开发基础,Python开发进阶 ...

  5. Python运维开发基础01-语法基础

    标签(空格分隔): Mr.chen之Python3.0执教笔记(QQ:215379068) --仅供北大青鸟内部学习交流使用 开发不是看出来的,开发一定是练出来的: 想学好开发,没有捷径可走,只有不断 ...

  6. 20155202 实验四 Android开发基础

    20155202 实验四 Android开发基础 实验内容 1.基于Android Studio开发简单的Android应用并部署测试; 2.了解Android.组件.布局管理器的使用: 3.掌握An ...

  7. 2016-2017-2 20155302 实验四 Android 开发基础

    2016-2017-2 20155302 实验四 Android 开发基础 实验内容 1.下载和安装Android Studio 2.学会使用Android Studio进行简单的Android开发 ...

  8. 第五模块:WEB开发基础 第2章·JavaScript基础

    01-JavaScript的历史发展过程 02-js的引入方式和输出 03-命名规范和变量的声明定义 04-五种基本数据类型 05-运算符 06-字符串处理 07-数据类型转换 08-流程控制语句if ...

  9. [转]JavaEE开发基础

    JavaEE开发基础 1 JavaEE简介 Java平台有三个版本,分别是JavaSE(Java Platform, Standard Edition),JavaEE(Java Platform, E ...

  10. .NET基础拾遗(5)多线程开发基础

    Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理基础 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 (6)ADO.NET与数据库开 ...

随机推荐

  1. MarkDown --- 数学公式语法集

    介绍 Markdown 是一种轻量级标记语言,它允许你使用易于阅读.易于编写的纯文本格式来创建富文本内容.通过简单的标记符号,如井号(#).星号(*)和下划线(_),可以快速地添加标题.粗体.斜体.链 ...

  2. 第143篇:手写vue-router,实现router-view

    好家伙,   今天来手写我们的老伙计vue-router,   1.替换router 新开一个项目,并使用我们手写的router   2.大致结构 let Vue; // 保存vue的构造函数 cla ...

  3. 整数输入框 InputNumberIntZen.vue 只能输入整数 不能输入.等其他字符

    这版的输入限制堪称完美 perfect! 20230712 更新 加入 onBlurHandle 如果输入的02 失焦的时候 变成2 <!--数字输入框 只能输入数字 整型 InputNumbe ...

  4. kettle教程--通过配置文件同步所需要的列数据

    kettle教程--通过配置文件同步所需要的列数据 欢迎关注博主公众号「Java大师」, 专注于分享Java领域干货文章, 关注回复「kettle」, 免费领取全网最热的kettle实战视频教程 ht ...

  5. tomcat报错Exception loading sessions from persistent storage解决方案

    现象:项目在重启时报错:严重: Exception loading sessions from persistent storage的问题.该问题的原因是tomcat的session持久化机制引起的, ...

  6. [pyplot]在同一画面上绘制不同大小的多个图像

    一.背景 做计算机应用数学作业时要求使用matplotlib库在同一张图上绘制两个图像,但是这两个图像的大小不同,百度之后发现大部分只是转载的同一篇博客,而且只能实现部分子图比例排版,并不能随意设置各 ...

  7. 建民哥哥的AV

    1 #include<bits/stdc++.h> 2 #include<vector> 3 #include<algorithm> 4 using namespa ...

  8. linux下永久添加静态路由-不同

    linux下永久添加静态路由-不同 添加路由的命令: 1,route add route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0#添加一 ...

  9. kingbaseES sql 优化技巧汇总

    1.整体思路 针对业务系统的出现的慢sql 我们的优化步骤大概分为以下几步 1.识别高负载语句 2.收集性能相关的数据 3.确定性能问题产生的原因 4.实施优化手段 下面我们针对这几个步骤展开进行讲解 ...

  10. KingbaseES 原生XML系列二 -- XML数据操作函数

    KingbaseES 原生XML系列二--XML数据操作函数(DELETEXML,APPENDCHILDXML,INSERTCHILDXML,INSERTCHILDXMLAFTER,INSERTCHI ...