计算机和编程语言

  • 谷歌pagerank算法:给每一个网页有一个权值

    • 被越多网页引用的网页越重要

    • 被越重要的网页引用越重要

    • 给每一个网页赋予权值,空网页权值为0 (马尔科夫链)

机器语言

汇编语言

高级语言

  • c语言面向过程

  • 面向对象语言java,c++,c#

程序运行的方式

  • 解释:将源程序一句一句的翻译成二进制,然而翻译一句执行一句

  • 编译:一次将整个源代码翻译成二进制,

人工智能(Paython很多的人工智能的算法框架(工具),都是用Paython实现)

Java对于大数据(无与伦比),有很好分布式工具,调参数。

why java

  • 语言使用量最大(Android)

  • 相对简单(简单:相对指针;安全:资源回收;动态代码,虚函数)

  • 用途广

  • 运行设备最多(生产力)

java的优势

  1. java 没有指针; 引用,容易上手

  2. java有自动的资源回收机制(很大程度上规避了此现象:野指针:指针指向了不属于进程的内存空间)

  3. 实现运行时多态的时候,c++必须通过虚函数实现,java中很容易实现

  4. 跨平台,一次编译,多处运行

java版本

  • J2SE

    单机,完成桌面应用程序开发

  • J2ME

    嵌入设备(自动提款机)

  • J2EE(让别人来访问,程序不在客户端本地)网络

Java,一般来讲指代的Java程序,但是严格来讲是一个体系

  1. Java语法

  2. 运行在不同平台上的java虚拟机

  3. class字节码文件格式

  4. java api类库

  5. 三方开源(看到程序的源代码)的优秀的java类库

为什么可以跨平台运行

  • 运行在虚拟机(JVM)上才得以跨平台运行

  • 针对不同平台有windows虚拟机,linux虚拟机,mac os虚拟机

  • java是跨平台的,但是java虚拟机上不跨平台的

Java程序是跨平台的,Java虚拟机不跨平台

"Java之所以能跨平台,本质原因在于jvm不是跨平台的"如何理解?

误区:JVM都不是跨平台的,JAVA依赖于JVM,那JAVA应该就不跨平台了啊

解释:先理解跨平台含义:不依赖于操作系统,也不依赖硬 件环境。不同的系统下有不同的JVM(JVM是C语言写的)所以JVM不是跨平台的,没毛病。JAVA依赖于JVM,JVM给JAV提供了运行环境,所以JAVA是跨平台的。再重新理解这句话...豁然开朗

执行过程:Java编译器将Java源程序编译成与平台无关的字节码文件(class文件),然后由Java虚拟机(JVM)对字节码文件解释执行。该字节码与系统平台无关,是介于源代码和机器指令之间的一种状态。在后续执行时,采取解释机制将Java字节码解释成与系统平台对应的机器指令。这样既减少了编译次数,又增强了程序的可移植性,因此被称为“一次编译,多处运行!”。

JDK(Java Development Kit)与JRE(Java Runtime Environment)

  • JDK包含:Java语法,虚拟机,以及Java类库

  • JRE包含:指java程序运行环境,包含虚拟机和程序运行时核心类库

  • JDK包含JRE

  • JDK的程序交给JRE运行

  • 总结:jdk开发中用,jre运行时用,jvm解决了跨平台:把class文件编译成别的平台认可的文件。

JRE(Java Runtime Environment Java运行环境)

  • 包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。

JDK(Java Development Kit Java开发工具包)

  • JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。

  • 其中的开发工具:编译工具(javac.exe) 打包工具(jar.exe)等

  • JDK开发完成Java程序,交给JRE去运行

程序解析

  • 首先编写java源代码程序,扩展名.java

  • 在命令行模式中,输入javac命令对源代码进行编译,生成字节码文件

    • javac 源文件名.java (如:jdk\bin\java HelloWorld.java)

  • 编译完成后,如果没有报错信息,输入java命令对class字解码文件进行解释运行,执行是不需要添加.class扩展名

    • Software\jdk\bin\java HelloWorld

 
工作原理Java源代码/HelloWorld.javaJava源代码/HelloWorld.javaJava字节码文件/HelloWorld.classJava字节码文件/HelloWorld.class运行结果运行结果编译:javac编译,运行javac(HelloWorld.java)JVM(加载字节码文件,到jvm内存运行)(HelloWorld.java)
 

path 环境变量

  • 配置环境变量的作用:告诉操作系统到哪里找命令。给操作系统使用,寻找javac。

  • windows 配置环境:

    1. 我的电脑-右键-属性-高级-环境变量-path-新建javac的jdk/bin/目录

path环境变量配置方法2(提倡方式)

  • path环境变量的参照形配置方法

    • 创建新的变量名称:JAVA_HOME

    • 为JAVA_HOME添加变量值:JDK安装目录

    • 将path环境变量中JDK目录修改:%JAVA_HOME%\bin;

  • path环境变量具有先后顺序

设置JAVA_HOME:

​ (1).为了方便引用,例如,将JDK安装在D\basic\Java\jdk1.8.0目录里,若设置了JAVA_HOME为该目录路径, 那么以后要引用这个路径时, 只需输

入%JAVA_HOME%即可, 避免每次引用都需输入很长的路径字符串;

​ (2).归一原则, 如果设置classpath或path等其它环境变量时,引用的路径不是D\basic\Java\jdk1.8.0...,而是%java_home%....,那么当你JDK安装的路径改变时, 只要改一下JAVA_HOME变量的值即可, 否则,你就要更改所有用绝对路径引用JDK目录的环境变量的值, 如果漏了某个没有修改, 将导致某个程序找不到JDK, 无法运行

​ (3).第三方软件会引用约定好的JAVA_HOME变量, 不然, 你将不能正常使用该软件, 要是某个软件不能正常使用, 不妨想想是不是这个问题

Classpath 环境变量

  • 配置classpath:找到java源文件编译;给jvm使用, 加载字节码文件

    • 创建新的变量名称:classpath

    • 值设定为制定的还有class文件的目录,多个目录间使用分号分割

    • 作用:使用classpath目录中的.class文件可以在任意目录运行

    • 技巧:通常将配置的目录最前面添加配置,即便当前目录,使.class文件搜索时首先搜索当前目录,然后根据目录配置的顺序依次查找,找到后运行

path和classpath的区别

  • path环境变量里面记录的是可执行文件,如.exe文件,对可执行文件先在当前路径去找,如果没找到就去path环境变量中配置的路径去找

  • classpath环境变量里记录的是java类的运行文件所在的目录

JAVA中System.out.println和System.out.print有什么区别

java里常用的控制台输出语句有System.out.println和System.out.print

一、两者之间的区别如下:

  1. 参数有区别:System.out.println() 可以不写参数System.out.print(参数) 参数不能为空.必须有

  2. 效果有区别println :会在输出完信息后进行换行,产生一个新行print: 不会产生新行

  3. println更简洁, print更灵活print可以后面跟"\n"来达到和println一样的效果也可以跟"\t" 制表符, 等.

二、通过阅读java源代码来理解

System.out.println(字符串参数); 源代码如下:

   public void println(String x) {
           synchronized (this) {
               print(x);//先调用print(x)来打印信息
               newLine();//然后换行
           }
       }

System.out.print(字符串参数); 源代码 如下

  public void print(String s) {
          if (s == null) {
              s = "null";
          }
          write(s);
      } 

三、注意事项: 虽然有略微的区别,但是两个方法经常一起搭配使用,更加灵活和方便.

  public class OutDemo {
      public static void main(String[] args) {
          String[] name = {"tom","jack","jerry","lucy"};
          System.out.println("-------输出信息------");//输出完信息后换行
          for (int i = 0; i < name.length; i++) {
              System.out.print(name[i]+" ");//输出元素,并且追加1个空白,用于隔开元素
          }
          System.out.println("\n-------------------");// "\n"先输出换行,然后输出信息,最后再换行
      }
  }
 

四、参考实例和注释我们对数组元素进行输出时,往往并不希望每输出1个就换行1次,一般我们会在输出数组前换行,输出完毕后才再次换行.

JavaBasic_01的更多相关文章

随机推荐

  1. python 解析与生成xml

    xml.etree.ElementTree模块为xml文件的提取和建立提供了简单有效的API.下文中使用ET来代表xml.etree.ElementTree模块. XML是一种内在的分层的数据形式,展 ...

  2. ssl tls 证书链 根证书和叶证书查询

    你基本上需要做的是构建一个证书链,如果你没有得到它作为一个链.证书链基本上由第零个位置的最终实体证书(也是叶证书,链中最重要的证书)组成,其次是次要证书. CA证书是最不重要的. 所以这是通常的X.5 ...

  3. stund客户端使用结果说明

    stun服务器是用于检测网络类型的重要工具. 源码地址:https://svwh.dl.sourceforge.net/project/stun/stun/0.97/stund-0.97.tgz 或者 ...

  4. 生成PDF文档之iText

    iTextSharp.text.Document:这是iText库中最常用的类,它代表了一个pdf实例.如果你需要从零开始生成一个PDF文件,你需要使用这个Document类.首先创建(new)该实例 ...

  5. Spring Boot + Spring Cloud 实现权限管理系统 (集成 Shiro 框架)

    Apache Shiro 优势特点 它是一个功能强大.灵活的,优秀开源的安全框架. 它可以处理身份验证.授权.企业会话管理和加密. 它易于使用和理解,相比Spring Security入门门槛低. 主 ...

  6. unity中把一个图片切割成两个UI图片

    1.在unity3D的Project视图下选中需要更改的图片,将图片的Texture Type更改为Sprite (2D and UI),点击Apply即可.操作如图所示: 2.完成步骤一,点击App ...

  7. File 和 导出jar包

    1.File import java.io.File; import java.io.IOException; public class FileTest { public static void m ...

  8. java⑨

    do-while,先执行一次,再判断! do{ 循环体 }while(循环条件); 经典案例: 1. 需求:    01.记录每次用户购买的商品金额! 之后进行 结账!    02.增加购买商品的数量 ...

  9. vue-router-6-命名视图

    //展示多个视图<router-view class="view one"></router-view> <router-view class=&qu ...

  10. בוא--来吧--IPA--希伯来语

    灰常好听的希伯来语歌曲, Rita唱得真好.