2022-07-13 第一小组 张晟源


JAVA

java:半解释半编译

  解释:浏览器可以直接运行JS,不需要编译

  编译:java,scala,hello

  java市程序员写的,以10进制java文件写的,计算机只认识二进制。

 

java历史:sun公司发明了java

java:C和C++

计算机:软件加硬件

内存:物理内存,虚拟内存

 

操作系统:

  • 打开指令操作台,win+r,输入cmd
  • 输入盘符,进入E盘     e:
  • 回到上一层:   cd..
  • 进入指定目录:    cd   a
  • dir指令查看当前目录下文件夹信息: dir
  • 创建一个空文件: copy nul  a.txt
  • 向文件内写入内容: echo 1234>a.txt
  • 复制文件: copy a.txt  b.txt
  • 删除文件:del a.txt 不走回收站

 

存储单位:

  • 一个bit=一位
  • 1byte=8bit
  • 1kb=1024b
  • 1mb=1024k
  • 1gb=1024m
  • 1tb=1024g
  • 1pb=1024b

  二进制的加减法计算:

  • 10010011
  • 10101001
  • 对应相加
  • 100111100

 

  • 00000001
  • 10000001
  • 用补码计算

 

Java三个版本:

  • JavaSE:桌面应用程序
  • JavaEE:企业级应用,主要学习
  • JavaME:手机端

Java特点:

  • 面向对象
  • 跨平台:操作系统,Java写的软件可以在任意操作系统运行
  • 解释执行,计算机执行的.class,解释执行.class
  • 多线程,多个任务同时进行
  • 分布式
  • 健壮性:强数据类型的语言,异常处理,垃圾回收机制
  • 安全性:插件设置一个去防范机制

 

Java环境搭建

  • JAVA_HOME:jdk路径(C:/P/java/jdk-11.0.15)
  • 找到原来的Path,把bin目录复制进去(或%JAVA_HOME / bin%)

 

JAVA常用指令:

  • java
  • javac
  • javap
  • java -version
  • java -jar

 

 创建一个java文件

public class Hello{
    public static void main(String[] args) {
        System.out.println( "Hello" );

    }
} 

通过cmd指令找到java文件,需要编译,使用javac hello.java,生成了一个hello.class,是计算机去解释执行的文件,说明hello.class是一个二进制文件,hello.class叫字节码文件

执行hello.java,java  hello

 

类:Java开发中最小的单位

命名规则(标识符):字母数字下划线$,其中不能以数字开头,关键字不能命名

关键字:官方的解释,有独一无二的作用,都是小写的,50个左右,2个保留字

 

java注释:

  • //单行注释
  • /*多行注释*/

 

  • /** 
  •  *文档注释
  • */

   三种注释都可以调试代码

 

主方法(main):是程序的入口

 

Java数据类型:

  • 基本数据类型(四类八种)
  • 引用数据类型

   基本数据类型:

    整型:

      byte:字节型 -128~127 一个字节=8位

      short:短整型  -2^15~2^15-1  二个字节=16位

      int:-2^31~2^31-1 四个字节=32位

      long:长整型-2^63~2^63-1  八个字节=64位(使用长整型需要在值得后面加L或l)

    浮点型

      float:单精度浮点型  四个字节=32位  (使用长整型需要在值得后面加F或f)

      double:双精度浮点型 八个字节=64位

    字符型

      char:字符型  二个字节=16位 0~255(字符型需要加单引号,引号中只能放一个)

    布尔型

      boolean,true,false 一个字节=8位

 

变量的命名:字母数字下划线$,其中不能以数字开头,关键字不能命名

 

小数默认double,整数默认int

 

精度:

整形:4种整型,精度和位数挂钩,位数越大,精度越高

浮点型:double精度比float要高

低精度与高精度运算,得到的是高精度

 

基本类型转换:

1.自动类型转换:低精度->高精度

2.强制类型转换:高精度->低精度

 

复制运算符:

  • +
  • =
  • -=
  • *=
  • /= 
  • %=
  • a+=1  ->  a=a+1

 

比较运算符:

  • <
  • >
  • >=
  • <=
  • ==
  • !=

 

逻辑运算符:

与 :&&   &  只有所有条件都为true,整体才为true,否则为false,一假则假,短路效应

  a&1   = 0 偶数
  a&1 =   1 奇数

 或 :一真则真,短路效应

 非  :取反  ~

异或:^

  void swap(int x , int y)

  {

    x ^= y;

    y ^= x;

    x ^= y;

   }

>>   <<    >>>(无符号右移)

位运算运用:

  • 绝对值: 
int abs( int x )
  {
      int y ;
      y = x >> 31 ;
       return (x^y)-y ;        //or: (x+y)^y
  }

  

  • 取模运算转化成位运算 (在不产生溢出的情况下)

           a % (2^n) 等价于 a & (2^n – 1)

 

  • 乘法运算转化成位运算 (在不产生溢出的情况下)

           a * (2^n) 等价于 a<< n

  • 除法运算转化成位运算 (在不产生溢出的情况下)

           a / (2^n) 等价于 a>> n
          例: 12/8 == 12>>3

  • a % 2 等价于 a & 1  ( a  & log2(2))      

         a % 4 等价于 a & 2  ( a  & log2(4))  

        …..       
         a % 32 等价于 a & 5

 

  •  if (x == a) x= b;

      else x= a;
   等价于 x= a ^ b ^ x;

  • x 的 相反数 表示为 (~x+1)
  • 绝对值
  int AbsInt(int n)
  {
  int i = n >> 31; // if n >= 0, i = 0; else i = 0xffffffff = -1
  n = n ^ i; // if i = 0, n = n; else i = 0xffffffff, n = ~n
  return n - i; // if i = 0, n - i = n; else i = -1, n - i = n + 1
  }
  • 浮点数的绝对值
  float AbsFloat(float flt)
  {
  *(size_t*)&flt = (*(size_t*)&flt & 0x7fffffff);
    return flt;
  }

  double AbsDouble(double dbl)
  {
  *((size_t*)&dbl + 1) = (*((size_t*)&dbl + 1) & 0x7fffffff);
    return dbl;
  }

  

 

三目运算符:a>b?1:2

 

char的特殊性:

映射表ASCII码,每一个字符在计算机都是以ASCII码保存

char是16位,可以自动转成int,long,float,double

 

原创文章,作者:bd101bd101,如若转载,请注明出处:https://blog.ytso.com/274196.html

(0)
上一篇 2022年7月13日
下一篇 2022年7月13日

相关推荐

发表回复

登录后才能评论