1.Linux:

开源操作系统、免费的,服务器端

目录(/根目录),挂载点(目录),高

基于命令的----pwd,ls,cd

绝对路径、相对路径

2.java运行环境:

.java,经过编译,生成.class字节码文件

jvm加载.class并运行.class

跨平台,一次编程到处使用

JVM:java虚拟机

JRE:java运行时环境

JRE=JVM+java系统类库

JDK:java开发工具包

JDK=JRE+编译、运行等工具

3.eclipse

Linux分两种:

1.带图形界面的------为了便于你们操作

2.不带图形界面的----真正的服务器的操作系统

Windows--------公司中的是

Linux----------java程序写好后配到服务器

补充知识点:

1.Linux目录结构

Windows操作系统的目录结构,是以盘符为单位,C盘、D盘、E盘等等,数据存储在各个盘符之下,而Linux操作系统最顶层只有一个根目录root,所有文件都存储在这一个根目录之下。

Windows操作系统若插入一个外部设备(U盘等),在系统中是多了一个盘符H,对H盘的操作就是对外部设备的操作。Linux操作系统是在根目录root下有一个名叫mnt的子目录,在这个目录下,会出现一个目录,假设为sdcard,称之为挂载点,对它的操作就是对外部设备的操作。

Windows操作系统某用户登录系统后,对所有文件都具有增删改查的权限,即:可以操作任意目录,假设将C盘下Windows目录删除,则会导致系统异常,安全性较差。Linux操作系统对权限要求比较严格,用户登录后并非对所有目录具有增删改查权限,默认的当前目录为根目录下的home目录下的soft01,称之为主目录,对这个目录具有最高权限,其余目录文件一般都是只读的,不能随意删除,这样就保证了安全性。

2.Java程序遵循着先编译、后执行的原则。首先,通过javac命令将JAVA源程序(.java文件)编译为JAVA字节码(.class文件),而后,通过java命令启动JVM,由JVM来加载.class文件并运行.class文件。

3.系统类库即为java提前封装好的功能类,只需拿来直接使用即可,可以大大的提高开发效率。

4. JVM就是一个软件。它是用软件“虚拟”出的一个硬件机器。和真实的硬件机器一样,这个“虚拟机”定义有指令集、寄存器、存储区等细节;而Java字节码可以看成是在这个“虚拟机”上运行的机器码。正是由于Sun定义了JVM规范,而且不同的操作系统提供了不同的JVM实现,才使得相同的一个字节码文件可以在不同的系统上运行(当然这些系统必须安装有适用于该系统的JVM),从而使Java赢得了“一次编译,到处使用”的称谓。JVM是用本地C实现的,所以,Linux系统和Windows系统使用的JVM不同。

5. 名词解释JVM、JRE、JDK

JVM (Java Virtual Machine)称之为Java虚拟机,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。JVM在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。

JRE(Java SE Runtime Environment)称之为Java SE运行时环境,提供了运行Java应用程序所必须的软件环境,包含有Java虚拟机(JVM)和丰富的类库(Libraries)。运行一个已经开发好的Java应用必须安装JRE。

JDK( Java Development Kit)称为Java开发工具包,是JRE的超集,或者说JDK包含了JRE。JDK中除了包含有JRE的所有内容之外还提供了编写Java程序所必须的编译器和调试工具等。对于进行Java开发的人士一般需要下载JDK,目前的主流版本为JDK 6。

6. 在Linux系统下可以使用./eclipse启动执行程序eclipse

1.变量:存数的,代词,指代的就是它所存的那个数

1)声明:

int a; //声明一个整型变量,名为a

int b,c,d; //声明三个整型变量,名为b,c,d

2)命名:

2.1)只能包含字母、数字、_和$符,

并且不能以数字开头

2.2)严格区分大小写

2.3)不能使用关键字

2.4)可以中文命名,但不建议

建议:见名知意、驼峰命名法

3)初始化:第一次赋值

3.1)声明同时初始化

int a=250;

3.2)先声明后初始化

int a;

a=250;

4)使用:

4.1)必须与数据类型匹配

int a=25.678; //编译错误,类型不匹配

4.2)对变量的操作就是对那个数的操作

int a=5,b=10;

int c=a+b; //取出a中的5,加上b中的10,赋值给c

System.out.println(c); //输出c中的那个数15

4.3)变量用之前必须声明并初始化

System.out.println(m); //编译错误,变量未声明

int m;

System.out.println(m); //编译错误,变量未初始化

int m=250;

System.out.println(m); //正确

2.基本数据类型:

1)int:整型,4个字节,-21个多亿到21个多亿

1.1)整数直接量默认为int型,若超范围则编译错误

1.2)两个整数相除,结果还是整数,小数位无条件舍弃

1.3)运算时,若超出int范围,则溢出----需要避免

2)long:长整型,8个字节,很大很大很大

2.1)long类型的直接量为数字后加L或l

2.2)运算时若有可能超范围则设置第一个数加L

2.3)System.currentTimeMillis();

获取自1970.1.1零时到此时此刻的毫秒数

3)double:浮点型,8个字节

3.1)小数直接量默认为double型

3.2)double有舍入误差,精确运算场合不可使用

4)boolean:布尔型,1个字节

4.1)只能取值为true和false

5)char:字符型,2个字节

5.1)采用unicode编码格式,每个字符对应一个码

ASCII码--'a'(97) 'A'(65) '0'(48)

5.2)字符需放在一对单引号中

必须有并且只有一个

5.3)特殊符号需使用\来转义

3.数据类型间的转换:

类型从小到大如下所示:

byte-short-int-long-float-double

char--

1)两种方式:

1.1)自动类型转换:从小类型到大类型

1.2)强制类型转换:从大类型到小类型

强转可能会溢出或精度丢失

2)两点规则:

2.1)整数直接量可以直接赋值给byte,short,char, 但不能超范围

2.2)byte,short,char类型变量参与运算时,

先一律转换为int再运算

4.Scanner的用法:

1)在package下:

import java.util.Scanner;

2)在main的{}中:

Scanner scan = new Scanner(System.in);

3)在第2步之下:

int age = scan.nextInt();

double price = scan.nextDouble();

补充知识:

1.直接量超范围--------编译错误

算术运算超范围------溢出(不是错误,不好的现象)

2. 通过代码计算一段程序运行的时间

使用了JDK提供的 System.currentTimeMillis() 方法,该方法返回1970年1月1日零点到此时此刻所经历的毫秒数,其数据类型为long,经常用于计时操作。

3.  char ascii=98;

System.out.println(ascii);

上述代码的输出结果为:b

原因是如果把0~65535范围内的一个int整数直接量赋给char类型变量,系统会自动把这个int类型整数当成char类型来处理。

4.. byte b1=10;

byte b2=20;

byte b3=b1+b2; 上述代码在第三行会出现编译错误,原因是b1+b2的结果为int类型。使用强制类型转换,将int类型结果转换为byte类型

1.运算符:

1)算术运算符:+-*/%,++,--

2)关系运算符:>,<,>=,<=,==,!=

3)逻辑运算符:&&,||,!

4)赋值运算符:=,+=,-=,*=,/=,%=

5)字符串拼接:+

6)三目运算符:boolean?数1:数2

2.分支结构:

1)if结构:1条路

2)if...else结构:2条路

3)if...else if结构:多条路

4)switch...case结构:多条路

优点:效率高、结构清晰

缺点:整数、相等

break:跳出switch

补充:

1.使用“+”进行字符串连接

“+”除了可以进行算术运算以外,还可以实现字符串的连接,同时可以实现字符串与其他数据类型的“相连”。

当 + 号作用于两个数字类型变量时,是在进行算术运算。

当 + 号两边的变量有一个是字符串类型,即””括起来的时候,则其进行的是字符串的连接,连接后的结果为字符串类型

2. java语法规定,当if语句块中只包含一条语句时,可以省略“{}”,但是if语句块也只能作用于它下面的一条语句。考虑到代码的可读性、扩展性,建议即便if语句块中只有一条语句,也不要省略“{}”。

3. ,switch是以case后的整型常量值作为入口的,若值相等,即开始执行其后面的语句。

使用switch时需要注意两个问题,第一,case后面的常量值必须不同,第二,switch后面的整型表达式的值必须是整型或字符型

4. 1.算术运算符:+,-,*,/,%,++,--

1)%:取余、取模----余数为0即为整除

2)++/--:自增1/自减1,可放在变量前也可放在变量后

2.1)单独使用时,在前在后无差别

2.2)在被使用时,在前在后有差别

2.2.1)a++的值为a的值

2.2.2)++a的值为a+1的值

1.循环:反复的执行一段相同或相似的代码

2.循环三要素:

1)循环变量的初始化

2)循环的条件(以循环变量为基础)

3)循环变量的改变(向着循环的结束变)

循环变量:在循环过程中所改变的那个量

3.循环结构:

1)while:先判断后执行,有可能一次都不执行

2)do...while:先执行后判断,至少会执行一次

第1要素与第3要素相同时首选

3)for:应用率最高的

补充

  1. 随机生成0到99之间的随机数Math.random()*100

Math.random()--------0.0到0.99999999.....

  1. public static void main(String[] args) {

int count=0;

while(count<5);

{

System.out.print(count+" ");

count++;

}

}

这段代码会形成一个死循环。

乍一看,这段代码片段没有任何问题,但仔细看一下这个程序,不难发现while循环的循环条件表达式后紧跟了一个分号。在Java中,一个单独的分号表示一个空语句,不做任何事情的空语句,这意味着这个while循环的循环体是空语句。空语句作为循环体也不是大问题,问题是当Java反复执行这个循环时,循环条件的返回值没有任何变化,这就形成了一个死循环。分号后面的代码块则与while循环没有任何关系。

3. 变量的作用域/范围:

从变量的声明开始,到包含它最近的大括号结束

.变量的同名问题:

作用域重叠时,变量不能同名

1.三种循环结构的更佳适用情况:

1)while:"当..."循环

2)do...while:"直到..."循环

第1要素与第3要素相同时首选

3)for:固定次数循环

2.嵌套循环:

1)循环中套循环,一般多行多列时使用

外层控制行,内层控制列

2)执行过程:外层循环走一次,内层循环走所有次

3)循环层次越少越好,能用一层就不用两层,能用两层就不用三层

如果需求必须3层以上才能实现,说明设计有问题

4)break只能跳出一层循环

3.程序=算法+数据结构

算法:解决问题的流程/步骤(顺序、分支、循环...)

数据结构:将数据按照某种特定的结构来保存

数怎么存

设计良好的数据结构会导致好的算法

4.数组:

1)相同数据类型元素的集合

2)数组是一种数据类型(引用类型)

3)数组的定义/声明:

int[] arr = new int[4];

4)数组的初始化:

int[] arr = new int[3];       //0,0,0

int[] arr = {1,3,5};          //1,3,5

int[] arr = new int[]{1,3,5}; //1,3,5

int[] arr;

arr = {1,3,5}; //编译错误

arr = new int[]{1,3,5}; //正确

5)数组的访问:

5.1)通过.length获取数组的长度

int[] arr = new int[4];

System.out.println(arr.length); //4

5.2)通过下标/索引来访问数组中的元素

下标从0开始,最大到.length-1

int[] arr = new int[3];

arr[0] = 100; //给arr中第一个元素赋值为100

arr[1] = 200; //给arr中第二个元素赋值为200

arr[2] = 300; //给arr中第三个元素赋值为300

arr[3] = 400; //异常

System.out.println(arr[arr.length-1]); //输出最后一个元素

6)数组的遍历:

int[] arr = new int[4];

for(int i=0;i<arr.length;i++){

arr[i] = 100;

}

for(int i=0;i<arr.length;i++){

System.out.println(arr[i]);

}

for(int i=arr.length-1;i>=0;i--){

System.out.println(arr[i]);

}

7)数组的复制:

System.arraycopy(a,1,a1,0,4);

int[] a1 = Arrays.copyOf(a,6);

a = Arrays.copyOf(a,a.length+1);

8)数组的排序:

Arrays.sort(arr); //升序排

冒泡排序

补充:

1. 冒泡原理:

1)4个数冒3轮

2)每一轮都是从第1个元素开始比

每一次都是和它的下一个元素比

3)冒出来的数就不带它玩了

2. Pascal之父Nicklaus Wirth说过一句话并因此而得了图灵奖,这句很经典的话就是,程序即为:算法+数据结构,所谓数据结构,简单的说就是把数据按照特定的某种结构来保存,设计合理的数据结构是解决问题的前提条件。

3. 数组为相同数据类型的元素组成的集合,数组元素按线性顺序排列,所谓线性顺序是指除第一个元素外,每一个元素都有唯一的前驱元素;除最后一个元素外,每一个元素都有唯一的后继元素(“一个跟一个”),可以通过元素所在位置的顺序号(下标)做标识访问每一个元素(下标从0开始,最大到元素个数-1)

4.定义基本类型数组的要点包括:

确切的数据类型:用于开辟空间大小

整体的数组名字:用于对数据的引用

不能缺少的“ [ ] ”

注意在定义数组时使用的new关键字, 正是因为new语句,才使得数组分配到了指定大小的空间(后面详细讲解)。

5.声明数组的时候,int[] arr 与 int arr [] 两种写法均可。常用方式为int[] arr。

6.声明数组时不规定数组长度(可以看到声明时仅指定了int[],未指定长度),new关键字分配空间时需指定分配的空间大小(new int[10])。

7.总结出Arrays.copyOf()方法的特点如下列表所示:

生成的新数组是原始数组的副本;

newLength小于源数组,则进行截取;(自己通过代码演示效果);

newLength大于源数组,则用0或 null进行填充;

1.方法:

1)用于封装一段特定的逻辑功能

2)方法应尽可能独立,一个方法只干一件事

3)方法可以被反复调用多次

4)结构清晰、便于维护、便于协作开发

2.方法的定义:

修饰词 返回值类型 方法名(参数列表){

方法体

}

3.方法的调用:

1)无返回值:

方法名(有参传参);

2)有返回值:

数据类型 变量 = 方法名(有参传参);

4.return:

1)return; //结束执行(void方法中)

2)return 值; //结束执行并返回结果(有返回值方法中)

转载于:https://www.cnblogs.com/liuxu0310/p/5024336.html

Basic--Java基本语法相关推荐

  1. Java基础语法(数组)

    第4天 Java基础语法 今日内容介绍 u 流程控制语句(switch) u 数组 第1章 流程控制语句 1.1 选择结构switch switch 条件语句也是一种很常用的选择语句,它和if条件语句 ...

  2. (转)JAVA正则表达式语法大全

    [正则表达式]文本框输入内容控制 整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$ 只能输入数字:"^[0-9]*$". 只能输入n位的数字:"^\d{n ...

  3. java语言语法--- Java标识符(标识符命名规则)、Java关键字、Java变量(变量的声明、赋值、使用)和常量(字符常量、字面常量)(包括Java字节码文件反汇编命令javap)

    java语言语法- Java标识符.Java关键字.Java变量和常量(包括Java字节码文件反汇编命令javap) 1.标识符 (1)读音:biao zhi fu (2)什么是标识符? (摘自百度百 ...

  4. java 基本语法与流程控制_Java基础语法之控制流程

    Java基础语法之控制流程 语言的流程控制提供了对程序步骤的基本方法. 三大流程控制语句:顺序.选择.循环 复合结构 复合结构是以一个区块为单位的,由"{"开始"}&qu ...

  5. Java Lambda语法替代

    关于lambda-dev邮件列表的讨论已经开始解决lambdas /函数文字的Java语言语法应该是什么样的问题. 让我们看一个稍微平凡的例子,然后尝试弄清楚问题. Perl的人有一个很好的例子,说明 ...

  6. 使用java实现面向对象编程第二章_java面向对象编程——第二章 java基础语法

    第二章 java基础语法 1.java关键字 abstract boolean break byte case catch char class const continue default do d ...

  7. Atitti.java exp ast java表达式语法ast构造器

    Atitti.java exp ast java表达式语法ast构造器 /atiplat_cms/src/com/attilax/lang/AstParser.java 原理 分割tokens_sli ...

  8. Java基础语法(一)

    Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称.由James Gosling和同事们共同研发,并在1995年正式 ...

  9. 学习日报 day02 java的语法骨架 myeclipse编辑java代码

    学习日报 day02 java的语法骨架 myeclipse编辑java代码 https://cloud.189.cn/t/3MJrm2MRNBRf 开发前的基本知识 java环境名词解释 JRE J ...

  10. Java基础语法初学者了解

    Java语言的特点 简单的面向对象语言 跨平台与解释执行 可以做到一次编译,到处执行. (Java跨平台,Java虚拟机不跨平台) 在具体的机器运行环境中,由Java虚拟机对字节码进行解释执行.通过定 ...

最新文章

  1. R语言使用forestplot包绘制森林图:编码创建森林图仿真数据、汇总线修改、元素位置调整、垂直线、字体、风格、置信区间、线型、图例、刻度、标签等
  2. 域服务器重装系统,win10系统配置域控制器的详细步骤
  3. VMware下安装Ubuntu不支持1920X1080分辨率问题
  4. Redis进阶之主从复制
  5. Oracle数据库查询优化
  6. CSS3动画 - title下划线的拉伸效果
  7. Linux常用命令总结之(七)mkdir
  8. 酒店管理系统-需求分析报告
  9. 到外企应聘如何准备英文简历(Tips for Resume)
  10. u大师装iso系统linux,u大师给苹果电脑装win7win10系统
  11. 《成为乔布斯》读后感
  12. 虚拟化bug定位神器之一 【gdbcoredump】--libvirtd hang 住
  13. 360插件化踩坑记录(二),RePlugin安装、启动插件无反应
  14. 【软件工程】决策表和决策树
  15. 办公协同应用「我来 wolai」获数千万人民币融资
  16. 网易视频云:流媒体服务器原理和架构解析
  17. Word中序号后面有空格怎么删除?
  18. Python计算商品复购率
  19. 地图可视化“一网打尽“
  20. stm32零基础怎么两周入门,应该怎么安排?

热门文章

  1. 用java写一个if语句
  2. SQL Server 索引基础知识(1)--- 记录数据的基本格式
  3. TCP/IP网络编程(3)
  4. Linux使用rostopic echo将rosbag文件转换成csv或txt文件以及sh脚本批量化操作
  5. java运算级别_java运算符优先级别
  6. java学习之类型转换与越界
  7. 首张数字人民币机票订单诞生 上海-深圳
  8. 加密货币交易所Coinbase在私募股票市场中估值达900亿美元
  9. Filecoin Gas基础费率降至4.67 nanoFIL
  10. 赛锐信息:SAP的ERP蓝图