java入门

java入门

1. 了解java

1.1 java是什么

是一门计算机编程语言。
​
编程语言:
    1. 机器语言     0  1 
    2. 汇编语言    
    3. 高级语言  java python  c  c++
    

1.2 从事行业

开发软件。
​
软件:
   1. 系统软件。  windows  linux  mac 
   2. 应用软件
        1.1 基于pc端的软件   qq  wechat    javafx  swing 
        1.2 移动端  app  
        1.3 基于浏览器   淘宝  .....
               

1.3 java优势

1.1 语法简单  入门容易  
1.2 面向对象----> 封装 继承  多态
1.3 跨平台  可移植性  一次编译   到处运行 
1.4 健壮性   GC +异常处理机制 
1.5 多线程  Thread  
1.6 分布式 Socket 
1.7 动态性 ---->反射

1.4 java历程

C++--
jdk1.7
jdk1.8
jdk11-----> 学习  LTS  long  term support 
jdk17    

1.5 java平台版本

1. JAVASE java基础版 java standard edition  pc端软件 
2. JAVAEE java企业版 java enterprise edition  基于broswer的软件
3. JAVAME java微型版 java micro edition 嵌入式+移动应用

1.6 术语解释

编程语言:
  解释型语言: html  js 依赖于浏览器进行解释运行
  编译型语言: C属于编译型原因 

JDK: java开发工具包   java development kit 
    只要想写java程序  必须使jdk    java文件
JRE: java运行环境   java runtime  environment
    只要java程序想运行  必须jre
JVM: java虚拟机  java virtual  machine
   java程序的真正的运行 是在虚拟机运行的,   只认识class文件。

2. 入门案例

2.1 代码编写

检测计算机里面是否提供jdk。win+r打开运行 输入cmd 在窗口中使用java检测。

1. 下载安装jdk
​
2. 编码
   编写java程序。 文件后缀java
   java文件名称必须遵循规范:  大写驼峰命名  
   
3. 运行程序
   3.1 配置环境。配置环境变量
      1. 在path ----> jdk的bin目录。
       在系统变量中  path: C:\Program Files\Java\jdk-11.0.14\bin
       
      2. 在开发中  推荐使用下面这种方式
        2.1 JAVA_HOME: jdk的根目录  tomcat服务器启动 必须依赖JAVA_HOME
          JAVA_HOME: C:\Program Files\Java\jdk-11.0.14
        2.2 配置path
             动态的获得JAVA_HOME变量的数据。
            path: %JAVA_HOME%\bin
   3.2 运行程序
      任意一门编程语言程序  都需要编译。
      手动编译java程序  成功地编译出来class文件 / 字节码文件. compile 
      1. javac java文件名称   javac HelloWorld.java
      2. 加载class文件   java  class文件的文件名称   java HelloWorld
      

//单行注释:解释说明
//类名: 必须与文件名一致 
public class HelloWorld{
    //程序执行入口  main函数
    //java程序在jvm里面运行  
    public static void main(String[] strs){
        //编写功能性代码
        //简单打印输出一些内容即可
        System.out.print(100);
        System.out.print(200);
        System.out.print(300);
        System.out.print(500);
        System.out.print("你好,欢迎来尚马教育");
        System.out.print("hello World ");
    }
    
}

重新修改java代码 都需要重新编译。

2.2 注释

    1. 单行注释

    // 可以注释文字  以及程序代码  一次只能注释一行内容
    1. 多行注释

    /*
      多行文字
      多行代码
    */
    1. 文档注释

// 一般是用来解释说明类以及方法。
/**
* @author: Lisa
* @className: HelloWorld
* @date: 2022-04-11 12:00:00
* @description: 入门案例
* @version: 0.1
* @since: jdk11
*/
​
/**
* @description:
* @param aaa xxxx
* @param 
* @return 返回的结果
* @throws 抛出的异常
*/
/**
* @author: Lisa
* @className: HelloWorld
* @date: 2022-04-11 12:00:00
* @description: 入门案例
* @version: 0.1
* @since: jdk11
*/
public class HelloWorld{
    //单行注释:解释说明
    //类名: 必须与文件名一致 
    //
    //java程序在jvm里面运行  
        /**
        * @description: 程序执行入口  main函数
        * @param aaa jvm优化的参数
        * @return 返回的结果
        * @throws 抛出的异常
        */
     public static void main(String[] aaa){
        //编写功能性代码
        //简单打印输出一些内容即可
        /*System.out.print(100+"\n");
        System.out.println(200);
        System.out.println(300);
        System.out.println(500);
        System.out.println("你好,欢迎来尚马教育");
        System.out.println("hello World ");
    }
    
}
//1.注释不参与编译的  class文件里面 看不到编写的注释。(IDEA)
//2.代码是严格区分大小写。 
//3.代码的结束  在末尾都需要加;
//4.程序想执行 必须提供  public static void main(String[] args){}
//5.必须与文件名一致
​

3. IDE

// 集成开发环境  integreted development  environment
Eclipse
IDEA 使用
MyEclipse
NetBeans

3.1 创建工程

一个窗口一个项目project。

一个窗口展示多个项目module。

3.2 package

public class B {
​
    //1. 使用package解决类名重复的问题
    //2. 维护分层开发
    //package: 包名全部小写   公司域名后缀+公司名称+项目名称+其他
    //www.baidu.com
    //com/org/cn/edu.baidu.
    //com.javasm.bean
    //com.javasm.controller
    //com.javasm.dao
    //com.javasm.service
    
}
​

3.3 设置

  • 修改字体大小

  • 取消首字母敏感

  • 统一编码格式

  • 设置全局文档注释模板

  • 修改颜色

4. 数据类型

使用程序维护一个用户基本信息。

姓名   张三
年龄   18
性别   男
职位   法外狂徒
身高   180.5
    
数值数据: 整数  小数
字符数据
真/假

4.1 数据类型分类

  • 引用数据类型: class interface 数组 等。 String 默认值: null

  • 基本数据类型: 四类八种

1. 整数类型

基本数据类型内存取值范围默认值
byte 字节1个字节 8bit-128-1270
short 短整型2个字节-2^15 - 2^15-10
int 整型(默认类型)4个字节-2^31 - 2^31-10
long 长整型8个字节-2^63 - 2^63-10L/l

2. 浮点型

基本数据类型内存取值范围默认值
float4个字节Float.minValue-Float.maxValue0.0F
double(默认类型)8个字节Double.minValue-Double.maxValue0.0D

小数之间执行运算 会存在数据精度不对 的情况。 BigDecimal

3. 单字符类型

char \u0000-\uffff 2个字节。 unicode 默认值: '' \u0000

一定要使用单引号引用数据。 ‘a’

4. 布尔类型

boolean true/false 默认值: false 1bit 0 1

4.2 编码

//使用局部变量维护内存不同类型的数据
//1. 数据类型  变量名称 = 数据;
int age = 18;
char gender = '男';
double height = 180.5;
boolean isGoodPerson = true;
String username = "张三";
String job = "法外狂徒";
​
System.out.println(username);
System.out.println(age);
System.out.println(gender);
System.out.println(height);
System.out.println(isGoodPerson);
System.out.println(job);

4.3 类型转换

只适应于基本数据类型。

相似的数据类型之后进行转换。 数值类型。
整数类型、byte short int long 
小数类型 float double 
字符类型 char

byte->short-> char ->int ->long ->float->double

1. 自动转换

前提: 取值范围小的类型的数据转换成取值范围大的类型的数据。

//1.自动转换
int num = 100;
double douNum = num;
System.out.println(douNum);
​
char ch = 'a';
int n = ch;
System.out.println(n);

2. 强制转换

前提: 取值范围大的类型的数据转换成取值范围小的类型的数据。

有可能会出现数据丢失的问题。

//2.强制转换
//手动实现类型之间的强制转换    目标类型  变量 = (目标类型)数据;
double d = 100.5678;
int a = (int) d; //alt+回车
System.out.println(a);
​
​
/*long lon = 1000;
        byte b = (byte) lon;
        System.out.println(b);*/
​
byte by1 = 100;
byte by2 = 100;
​
//byte sum = (byte) (by1 + by2);
long sum = (by1 + by2);
System.out.println(sum);

5. 变量

变量: 代表是内存里面的任意一个数据。可变的数据。维护内存里面不同的数据类型的数据。

5.1 分类

  • 全局变量

[访问权限修饰符] [普通修饰符]  数据类型  变量名称 [= 数据];
访问权限修饰符: public private  protected 默认
普通修饰符: static final transient 
变量名称: 自己命名  小写驼峰  userAge
​
 在代码里面   自己命名:  标识符 

  • 局部变量

存在于方法: {}
​
1. [普通修饰符]  数据类型  变量名称 = 数据; //初始化局部变量
​
2. [普通修饰符]  数据类型  变量名称; //声明局部变量
   变量名称 =  数据; // 赋值
​
要使用这个局部变量  前提: 必须有值。

public static void main(String[] args) {
    //数据类型
    //1.引用数据类型
    //2. 基本数据类型  四类八种
    //2.1 整数类型  byte  short  int long
​
    byte by = 100;
    short sh = 10000;
    int num = 100;
    long lon = 100L;
​
    //2.2 浮点型
    float f = 100.0F;
    System.out.println(f);
    double dou = 100.123455D;
    System.out.println(dou);
​
    //2.3 字符类型
    char c1 = 97;// ASCII
    char c2 = 'a';
    char c3 = '\u0061';
    System.out.println(c1);
    System.out.println(c2);
    System.out.println(c3);
​
​
    //2.4 布尔类型
    boolean flag = true;
    System.out.println(flag);
​
    //String
​
    String str = "hello";
​
​
}

6. 运算符

实现数据之间的相互运算。

6.1 赋值运算符

将运算之后的数据赋值给一个变量。

运算符作用
=int num = 100; 将100赋值给左边的num变量
+=num+=100; num= num+100;
-=
*=
/=
%=

6.2 算术运算符

+加法
-
*
/100/3
%模运算 取余数 100%3
++自增 +1
--自减 -1
+拼接(是否字符串的数据)

public static void main(String[] args) {
​
        //测试赋值/算术运算符
        int num1 = 100;
        num1 += 20;// num1 = num1+20
        System.out.println(num1);//120
        num1 *= 20;
        System.out.println(num1);//2400
        num1 /= 20;
        System.out.println(num1);//120
        num1 %= 20;
        System.out.println(num1);//0
​
​
        int a = 20;
        int b = 10;
        System.out.println(a + b);
        System.out.println(a - b);
        System.out.println(a * b);
        System.out.println(a / b);//求商
        System.out.println(a % b);//求余  a/b
        //++  --
​
​
        System.out.println("----------------------------");
​
        //++ --在变量名之后  先赋值  再运算
        int m = 10;
        int n = m++;
        System.out.println(m);//11
        System.out.println(n);//10
​
        //++ -- 在变量名之前  先运算 再执行赋值
        n = ++m;
        System.out.println(m);//12
        System.out.println(n);//12
​
        n = --m;
        System.out.println(m);//11
        System.out.println(n);//11
        n = m--;
        System.out.println(m);//10
        System.out.println(n);//11
​
​
        /*System.out.println("=======================");
        int x = 100;
        x = x++;
        //临时变量缓存机制
        int temp = x;
        x++;
        x = temp;
        System.out.println(x);//100*/
​
        //+
        System.out.println(10 + 100 + 1.123);
        System.out.println("100" + 10 + 1 + 2 + 3 + 2);
        System.out.println(10 + 'a' + 1 + 2 + 3);
​
        String name = "jim";
        int age =20;
        System.out.println("用户的姓名:"+name);
        System.out.println("用户的年龄:"+age);
    }

6.3 比较运算符

比较的结果: boolean true/false

>
<
>=
<=
==相等于。 比较的是什么 要看数据的数据类型
!=
public static void main(String[] args) {
​
    int num1 = 100;
    int num2 = 100;
​
    /*System.out.println(num1 > num2);
    System.out.println(num1 >= num2);
​
    System.out.println(num1 < num2);
    System.out.println(num1 <= num2);*/
​
    //比较的是数据
    System.out.println(num1 == num2);//true
​
    //只要是引用数据类型 都是占据2块内存  变量在栈  数据在堆
    String str1 = "hello";
    String str2 = "hello";
    System.out.println(str1);
    System.out.println(str2);
    System.out.println("(str1 == str2):" + (str1 == str2));//true
​
​
    //只要是new的东西  都在堆内存
    String str3 = new String("hello");
    String str4 = new String("hello");
    System.out.println(str3);
    System.out.println(str4);
​
    System.out.println("(str3==str4):" + (str3 == str4));//false
    System.out.println("(str1==str3):" + (str1 == str3));//false
    System.out.println("(str1!=str3):" + (str1 != str3));//true
​
​
    //引用数据类型:   比较数据  不能使用==  只比较内存地址值
    //字符串的数据比较  字符串1.equals(字符串2)
    System.out.println(str3.equals(str4));//true
​
​
​
​
}

6.4 逻辑运算符

运算的结果: boolean true/false

&逻辑与
&&逻辑与
|逻辑或
||逻辑或
!非 获得相反的结果
^相同则假
public static void main(String[] args) {
​
​
    //逻辑与: 第一个表达式结果true  后面不管几个都必须执行
    System.out.println((5 > 4) & (5 < 3));
    System.out.println((5 > 4) && (5 < 3));
​
    //逻辑与: 第一个表达式结果false  其实后面的 表达式就没有必要执行了
    // &: 不管第一个是true还是false  所有的表达式全部执行
    //&&: 后面表达式就不执行了  短路与
    System.out.println((5 < 4) & (5 < 3));
    System.out.println((5 < 4) && (5 < 3));
​
    //逻辑或: 第一个表达式结果false  后面都要执行  直到遇见true
    System.out.println((5 < 4) | (5 < 3));
    System.out.println((5 < 4) || (5 < 3));
​
    //逻辑或: 第一个表达式结果true 其实后面的 表达式就没有必要执行了
    System.out.println((5 > 4) | (5 < 3));
    System.out.println((5 > 4) || (5 < 3));
​
    //推荐:  &&  ||
​
    System.out.println(!true);
    System.out.println(true ^ false);
​
​
}

6.5 位运算符(了解)

//0  1
//false true
​
System.out.println("--------------------------------");
// & | ^
System.out.println(4 & 7);
//需要将数据转换成2进制位执行运算
//0100
//0111
​
//0100
System.out.println(4 | 7);//0111
System.out.println(4 ^ 7);//0011

6.6 三元运算符

语法: 数据类型 result = (表达式boolean)? 表达式1:表达式2;

使用表达式结果进行判断  
  true: 执行的是?后面的表达式的逻辑
  false: 执行的是:后面的表达式的逻辑
  
  表达式1 与表达式2运算之后的结果类型 必须是相似的  或者是相同的。

获得随意3个整数数据的最值。

public static void main(String[] args) {
​
    int a = 10, b = 30, c = 2000;
    //求最值
    // (表达式Boolean)?结果1:结果2;
    /* int max = (a > b) ? a : b;
        max = (max>c)?max:c;*/
​
    int max = (((a > b) ? a : b) > c) ? ((a > b) ? a : b) : c;
    System.out.println(max);
​
​
    //看数据精度最高的类型
    double result = ((false) ? 100 : 200.123);
​
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值