第一天:复习java入门知识,jvm内存,java程序执行流程,数据类型,变量和自动类型转换,运算符...
学习java目的:起初是因为想找工作,拿高薪。后来逐渐在学习java技术的过程中渐渐循喜欢上java,对java产生了兴趣,我相信只要有了兴趣,在通过自己努力学习,学习好技术,高薪也会随之而来的。是不矛盾,不冲突的。
虽然说刚开始学的懵懵懂懂的,有些原理不怎么理解。但是我相信通过自己持之以恒的学习,会达到自己的目标。我的人生态度活到老,学到老。
 
程序员为什么叫程序员?就是写程序的人
那么什么是程序呢?由一系列有序的指令组成的
计算机底层只能识别0和1(二进制数)
java语言的的特点:
1.面向对象
2.可以在不同的操作系统上运行(跨平台)
3.简单易学,开源免费,兼容性好....
 
java语言写好的程序需要JDK编译才能运行
计算机只能识别0和1,java语言写好的程序,如何实现一次编译,到处运行(在不同的操作系统上运行)? 依赖于jvm(虚拟机)
 
JDK,JRE,JVM三者之间的关系 :JDK包含JRE和JVM JRE包含JVM
JDK(Java Develop KIt):java程序运行工具,里面包括一些核心的类库 (java开发工具包)
JRE(Java Runtime Environment):java运行环境(java运行环境)
JVM(Java Virtual Machine):java虚拟机
 
 java程序执行过程:把写好的java程序(.java文件)首先通过JDK中的javac工具翻译成.class(二进制文件),在通过jre中的java工具运行翻译好的.class文件即可。
 
java数据类型分为两种,分别为基本数据类型和引用数据类型
基本数据类型分为4类八种基本数据类型
整数类型 byte short int long 在内存中所占的内存空间大小分别是1个字节,2,4,8。
byte(1个字节)的取值范围是-128-127
short(2个字节)的取值范围是-32768-32767
int(4个字节)的取值范围是-2147483648 (-2的31次方)-2147483647 (2的31次方-1)
long(8个字节)的取值范围是-9223372036854775808-9223372036854775807
1个字节=8个位(bit)
浮点型类(小数类性) flaot(单精度浮点型)占4个字节 double(双精度浮点型) 占8个字节
小数和整数的空间组织结构是不一样的,所有不能以字节大小来判断空间大小
字符类型 char 2个字节
布尔类型 boolean(true和false)真的假 1个字节
基本数据类型是没有地址值
 
引用数据类型:引用数据类型是有在内存中是有地址值的,地址值是可以在控制台打印出来的。
 
常量:java程序在运行过程中,其值不会发生改变的量
变量:java程序在运行过程中,其值会发生改变的量
本质:在内存中开辟的一小块内存空间,用来临时存储数据用的。
补充知识:硬盘是永久性存储数据,内存是临时性存储数据的。
 
如何定义变量?
变量数据类型 变量名=变量值;
例如:int a=1;
相当于我们在内存中开辟了一块叫做变量名(a)的数据类型(int)的内存空间,往叫变量名的空间存变量值(1)。
 
定义变量时需要注意的细节?
1.变量名可以是中文汉字,但是不建议使用,这是规范。
2.变量名可以由数字,英文字母,和¥($)美元符号,下划线_组成
3.变量名不可以以数字开头
4.变量名不能是关键字
5.变量名最好取的有意义(最好是能看到名字就知道意思)
6.同一个程序中,变量名不要重名,不然下面的重复名字的变量会把你上面定义的一样名字的变量覆盖。
 
java程序执行原理:
1.首先把你写好的程序通过JDK中的javac工具翻译成二进制文件或者也可以叫.class文件
2.在通过Jre中的java工具把翻译(编译)好的二进制文件运行,它会把这个二进制文件加载(通过类加载器)到jvm内存中(放在jvm内存的方法区中)
3.然后存在JVM内存的方法区中,存在方法区的字节码文件区域中
 
扩展:交换思想
例如:有两个变量分别是a和b,它们的值分别是10和20 ,需要把a和b中的值进行交换,怎么交换?
//交换思想 a和b的值交换
int a=10;//a=10  交换之后a=20
int b=20;//b=20 交换之后 b=10
int c;//临时存储的变量
c=a;//首先把a的值赋值给临时变量c
a=b;//在把b的值赋值给a
b=c;//最后把c的值赋值给b 这样a和b的值就交换了
System.out.println("交换之后a的值:"+a);
System.out.println("交换之后b的值:"+b);
数据类型的转换:
java中分类:
自动类型转换:不需要做什么强制措施,数据就可以进行自动转换。(小的转大的)
例如:int a;
byte b=1;
a=b;
 
在内存中定义变量时,都是依照我们开辟的内存空间占的大小去确定是什么数据 
强制类型转换:大的转小的(转换成谁就加谁)
int a=11;
byte b=(byte) a;
System.out.println("b的值是"+b);
java中的异常分为两种?分别是编译时异常和运行时异常
int a=10/0 是算数逻辑异常 会在运行时报错,因为除数不能为0.
 
题目:通过%和/分别取出12345的个位,十位,百位,千位,万位值?
        int a=12345;
int gewei=a1%10000%1000%100%10;//a1/1%10 也可以通过这种(更好一点)
int shiwei=a1%10000%1000%100/10;//a1/10%10
int baiwei=a1%10000%1000/100;//a1/100%10
int qianwei=a1%10000/1000;//a1/1000%10
int wangwei=a1/10000;//a1/10000%10
System.out.println("a1的个位数值是"+gewei);
System.out.println("a1的十位数值是"+shiwei);
System.out.println("a1的百位数值是"+baiwei);
System.out.println("a1的千位数值是"+qianwei);
System.out.println("a1的万位数值是"+wangwei);

javaSE基础复习的更多相关文章

  1. javase基础复习攻略《一》

    作为一名软件工程专业,JAVA开发方向的大三本科学生,有必要把自己的学到的专业知识进行一下整理,一则方便自己了解自己的学习程度,二则帮助刚刚接触这一门语言的童鞋了解学习,本人来自与河南理工大学,介绍完 ...

  2. javase基础复习攻略《十》

    按照计划本篇为大家总结JAVA的网络编程,什么叫网络编程呢?网络编程!=网站编程,对于这一点大家一定要注意,很多小朋友都曾经这么认为.既然谈到网络编程,咱们先了解一下网络的基础知识,什么是计算机网络? ...

  3. javase基础复习攻略《二》

    今天就开始的真正走进JAVASE的世界,本篇介绍的是:JAVASE基础语法,大家如果有C语言的基础,对于本节内容一定感觉非常轻松,编程语言之间的都是相通的,只不过C语言属于面向过程编程,而JAVA语言 ...

  4. JavaSE基础复习---1---2018/9/27

    2018/9/27 JavaSE学习笔记-1 目录: Java的起源 Java语言概述 1.Java的起源 现代编程语言的发展,大致可以理解为,机器码语言---汇编语言---C语言---C++语言-- ...

  5. javase基础复习攻略《九》

    本篇将为大家总结JAVA中的线程机制,谈到线程,大家一定会问线程和进程有什么区别?刚接触进程时我也有这样的疑问,今天就为大家简单介绍一下进程和线程.进程(Process)是计算机中的程序关于某数据集合 ...

  6. javase基础复习攻略《八》

    进入第八篇,我们开始讨论JAVA的IO初步.在JAVA程序中,对数据的输入\输出操作以"流"(stream)方式进行,J2SDK提供了各种各样的"流"类,用于获 ...

  7. javase基础复习攻略《五》

    总结完JAVA的基础语法和面向对象思想后,今天为大家补充一下JAVA中的数组,数组是什么呢?大家是不是想到了集合,数组和集合有相似之处,集合中的数据无序,不可以重复.数组中则存放着具有相同特征的一组数 ...

  8. javase基础复习攻略《三》

    编程语言的发展: 机器语言——直接由计算机的指令组成,指令.地址.数据都是以"0"和"1"的符号串组成,可以被计算机直接执行. 汇编语言——用容易理解和记忆的符 ...

  9. javase基础复习攻略《七》

    容器是什么?通俗的讲容器指可以装其它东西的器皿,前面我们提到的数组便是容器的一种,容器的概念在JAVA中便可以理解为用来存储其它对象的器皿.本篇就让我们一起来认识一下JAVA为我们提供的容器类. 1. ...

随机推荐

  1. 前端面试题之手写promise

    前端面试题之Promise问题 前言 在我们日常开发中会遇到很多异步的情况,比如涉及到 网络请求(ajax,axios等),定时器这些,对于这些异步操作我们如果需要拿到他们操作后的结果,就需要使用到回 ...

  2. 自动化运维利器Ansible要点汇总

    由于大部分互联网公司服务器环境复杂,线上线下环境.测试正式环境.分区环境.客户项目环境等造成每个应用都要重新部署,而且服务器数量少则几十台,多则千台,若手工一台台部署效率低下,且容易出错,不利后期运维 ...

  3. Shadertoy 教程 Part 1 - 介绍

    Note: This series blog was translated from Nathan Vaughn's Shaders Language Tutorial and has been au ...

  4. LeetCode:“剑指 Offer”

    LeetCode:"剑指 Offer" 刷题小菜鸡,花了几天时间做了一遍 LeetCode 上给出的 "剑指 Offer" 在此做一下记录 LeetCode主页 ...

  5. JAVA的array中indexOf

    记得龙哥有个重构的文章里说直接判断啥的. 今天看JDK ArrayList,看到了他的 indexOf,他先判断,后进入循环,看似写了两遍for 循环,但是简单明了暴力.i like it . pub ...

  6. 字符串与模式匹配算法(五):BMH算法

    一.BMH算法介绍 在BM算法的实际应用中,坏字符偏移函数的应用次数要远远超过好后缀偏移函数的应用次数,坏字符偏移函数在匹配过程中起着移动指针的主导作用.在实际匹配过程,只是用坏字符偏移函数也非常有效 ...

  7. docker+nginx搭建tomcat集群(附录)——nginx.conf文件

    附录:nginx.conf修改后的文件内容 user root;worker_processes 2; #error_log logs/error.log;#error_log logs/error. ...

  8. 从拥有一个阿里云账号开始使用Maxcompute

    本教程并不会创建子账户来管理maxcompute,是直接使用主账号来对maxcompute进行管理(强烈不推荐在生产环境中这样做!!) Step1:创建阿里云账号并实名认证 ​ 创建一个阿里云账号(使 ...

  9. C语言图书管理借阅系统——ncurses库的使用

    一.前言 作为一只大四狗,最近还跟着大二同学修了一门课(当然不是之前没通过啦),课程是高级语言课程设计,高级语言指的是C语言 :),内容是做一个XX管理系统,我选择了图书管理系统,先介绍下我做的系统: ...

  10. 攻防世界 WEB 高手进阶区 TokyoWesterns CTF shrine Writeup

    攻防世界 WEB 高手进阶区 TokyoWesterns CTF shrine Writeup 题目介绍 题目考点 模板注入 Writeup 进入题目 import flask import os a ...