01.09

一、Java环境的配置

1.1、JDK的安装

jdk包含了jre

jdk:开发用(javac、java、jps、jstack)

jre:开发程序

程序为什么要先编译?

机器语言-》汇编-》高级语言(c、java、c++)

javac把源程序编译成字节码文件(jvm再去把字节码翻译成机器语言)

1.2、环境的配置

  • path:路径(可执行的路径)

在这里插入图片描述

path的应用:用annie下载腾讯视频、B站视频等

  • classpath:class path(类路径)

需求:用java把学生表导出到Excel

1.下载POI的jar包

下载地址

https://www.apache.org/dyn/closer.lua/poi/release/bin/poi-bin-4.1.2-20200217.zip

2.写java程序

import java.io.FileOutputStream;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

/**
 * Description:
 * 作者:gu.weidong(Jack)
 * date:2018年9月27日
 * ProjectName:ExcelExport
 */
public class WriteExcel {
    public static void main(String[] args) throws ParseException {
        //创建一个HSSF,对应一个excel
        HSSFWorkbook workbook = new HSSFWorkbook();
        //在webbook中添加一个sheet,对应Excel文件中的sheet
        HSSFSheet sheet = workbook.createSheet("学生表");
        //在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
        HSSFRow row = sheet.createRow((int) 0);
        //创建单元格,并设置值表头 设置表头居中
        HSSFCellStyle style = workbook.createCellStyle();

        HSSFCell cell = row.createCell(0);
        cell.setCellValue("学号");
        cell.setCellStyle(style);
        cell = row.createCell(1);
        cell.setCellValue("姓名");
        cell.setCellStyle(style);
        cell = row.createCell(2);
        cell.setCellValue("年龄");
        cell.setCellStyle(style);
        cell = row.createCell(3);
        cell.setCellValue("生日");
        cell.setCellStyle(style);

        //写入实体数据
        //      List list = DemoDaoImpl.getStudent();
        List list = new LinkedList<>();
        list.add(1);
        list.add(2);
        list.add(2);
        list.add(2);
        list.add(2);
        for (int i = 0; i < list.size(); i++) {
            row = sheet.createRow((int) i + 1);
            //     Student stu = (Student) list.get(i);
            //创建单元格,并设置值
            row.createCell(0).setCellValue(i);
            row.createCell(1).setCellValue("Jack");
            row.createCell(2).setCellValue(20);
            cell = row.createCell(3);
            cell.setCellValue(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
        }
        //将文件存到指定位置
        try {
            FileOutputStream fout = new FileOutputStream("E:/学生表.xls");
            workbook.write(fout);
            fout.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

用java操作Excel(读、写)

rocketmq

java中很多第三方的应用都是以jar包的形式对外发布

spring
springmvc
springboot
springcloud

二、变量、流程控制

2.1、标识符、数据类型

  • 基本类型(8种)

整形:

计算机分配内存的最小单位:字节

声明年龄这样的变量 byte age ;节省了3个字节

byte: 8位 -128(2的7次方)~127(2的7次方减一)

short:16位 -32768~32767

int:32位 -2147483648~217483647

long

字符:char

浮点:float、double

布尔:boolean

  • 引用类型

接口

数组

2.2、 声明变量和赋值

数据类型 变量名称;

int a;

char c;

变量是一个容器(箱子)

byte age=22;

age=23;

2.3、流程控制

  • 程序可以做某件事

  • 程序在某个条件做某件事

if…else if…else

  • 程序在某个条件下做某件事

for:明确循环次数

while:不明确循环次数

2.4、Java程序什么情况下算是结束

main线程结束,意味着jvm的退出

三、方法

3.1、方法的概念和语法

  • 什么是方法?
能完成特定功能的代码的集合
  • 如何定义方法
返回类型 方法名称(【参数1】,【参数2】......){
    方法体
}

方法命名的依据?方法能完成什么功能

int c=abs(-5);
c是5

四、前四章综合案例

  • 标识符
  • 变量
  • 流程控制
  • 一维数组
  • 二维数组
  • 方法

编程的本质;调用方法

4.1、显示hero在屏幕上

  • 知识点
声明变量
变量赋值
class MainCanvas extends Canvas
{
	Image img;//变量的声明
	public MainCanvas(){
		try
		{
			img=Image.createImage("/sayo10.png");//变量赋值
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
	}
	public void paint(Graphics g){
		g.setColor(250,200,180);
		g.fillRect(0,0,getWidth(),getHeight());
		g.drawImage(img,100,100,0);
	}
}

4.2、让hero可以四个方向走动

  • 声明hero的x坐标和y坐标
int x,y;
  • 给x和y赋初值
x=100;
y=100;
  • 把drawImage中的100和100替换为x和y
g.drawImage(img,x,y,0);//第1个100是x坐标,第2个100是y坐标
  • 在keyPressed中对x坐标和y坐标进行加减操作
if(action==LEFT){
    System.out.println("向左走");
    x=x-1;
}
else if(action==RIGHT){
    System.out.println("向右走");
    x=x+1;
}
else if(action==UP){
    System.out.println("向上走");
    y=y-1;
}
else if(action==DOWN){
    System.out.println("向下走");
    y=y+1;
}
repaint();

4.3、让hero自然走动(两个图片来回切换)

  • 声明变量
  • 流程控制之if…else

思路分析

声明1个变量,我们来回改变该变量的值,不同的值显示不同的图片
例如:int f;
如果f是1,则显示sayo00.png
如果f是2,则显示say020.png

4.4、使用循环和一维数组

Image LeftImg[],downImg[],upImg[],rightImg[];
LeftImg = new Image[3];
downImg = new Image[3];
upImg   = new Image[3];
rightImg= new Image[3];
for(int i=0;i<LeftImg.length;i++)
{
    leftImg[i]=Image.createImage("/sayo"+i+"0.png");
    downImg[i]=Image.createImage("/sayo"+i+"1.png");
      upImg[i]=Image.createImage("/sayo"+i+"2.png");
   rightImg[i]=Image.createImage("/sayo"+i+"3.png");
}

4.5、使用循环和二维数组

Image heroImg[][];
heroImg = new heroImg[4][3];
for(int i=0;i<heroImg.length;i++)
 {
     for(int j=0;j<heroImg[j].length;j++)
     {
         heroImg=Image.createImage("/sayo"+i+j+".png");
     }
 }

五、递归

5.1、递归的概念

f

5.2、递归出口

  • 死循环
public static void m1()
{
    m1();
}
  • 出口
static int a ;
public static void m1()
{
    a++;
    if(a>500)
    {
        return;
    }
    m1();
}

六、方法的结束

一个方法什么时候才算结束?
return调用就算方法结束了
heroImg=Image.createImage("/sayo"+i+j+".png");
}
}


## 五、递归

### 5.1、递归的概念
f
### 5.2、递归出口
- 死循环
```java
public static void m1()
{
    m1();
}
  • 出口
static int a ;
public static void m1()
{
    a++;
    if(a>500)
    {
        return;
    }
    m1();
}

六、方法的结束

一个方法什么时候才算结束?
return调用就算方法结束了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
注:下文中的 *** 代表文件名中的版本号。 # 【poi-***.jar中文文档.zip】 中包含: 中文文档:【poi-***-javadoc-API文档-中文(简体)版.zip】 jar包下载地址:【poi-***.jar下载地址(官方地址+国内镜像地址).txt】 Maven依赖:【poi-***.jar Maven依赖信息(可用于项目pom.xml).txt】 Gradle依赖:【poi-***.jar Gradle依赖信息(可用于项目build.gradle).txt】 源代码下载地址:【poi-***-sources.jar下载地址(官方地址+国内镜像地址).txt】 # 本文件关键字: poi-***.jar中文文档.zip,java,poi-***.jar,org.apache.poi,poi,***,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,apache,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压 【poi-***.jar中文文档.zip】,再解压其中的 【poi-***-javadoc-API文档-中文(简体)版.zip】,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件; # Maven依赖: ``` <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>***</version> </dependency> ``` # Gradle依赖: ``` Gradle: implementation group: 'org.apache.poi', name: 'poi', version: '***' Gradle (Short): implementation 'org.apache.poi:poi:***' Gradle (Kotlin): implementation("org.apache.poi:poi:***") ``` # 含有的 Java package(包)(此处仅列举3个): ``` org.apache.poi org.apache.poi.common org.apache.poi.common.usermodel ...... ``` # 含有的 Java class(类)(此处仅列举3个): ``` org.apache.poi.EmptyFileException org.apache.poi.EncryptedDocumentException org.apache.poi.OldFileFormatException ...... ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值